web-dev-qa-db-fra.com

Charger le code HTML local sur l'iframe

J'ai dans ma page de serveur .html située sur c:\test\test.html.

Je souhaite afficher test.html dans iframe sur la machine cliente, comment puis-je faire cela?

Ce que j'ai essayé:

<iframe id="serviceFrameSend" src="file:///c:\test\test.html" width="1000" height="1000"  frameborder="0">

Mais il a trouvé le fichier test.html sur la machine cliente, comment puis-je m'assurer que le test.html sera chargé à partir du serveur?

Si ce n'est pas possible, comment puis-je le faire d'une autre manière?

4
CSharpBeginner

Comme vous avez la page sur le serveur, vous devez utiliser certains de ces exemples: 

<iframe id="serviceFrameSend" src="test.html" width="1000" height="1000"  frameborder="0">
<iframe id="serviceFrameSend" src="./test.html" width="1000" height="1000"  frameborder="0">

Vous devez utiliser ceci, si le test.html est dans le même répertoire que votre page principale.

<iframe id="serviceFrameSend" src="../test.html" width="1000" height="1000"  frameborder="0">

Vous devez utiliser ceci, si le test.html est dans le répertoire précédent de votre page principale. path/views/test/test.html et path/views/main/page.html.

<iframe id="serviceFrameSend" src="www.server.com/test/test.html" width="1000" height="1000"  frameborder="0">

Vous devez utiliser ceci, si vous connaissez l'URL pour ouvrir votre test.html.

6
DomeTune

Vous devrez utiliser un langage côté serveur tel que PHP, ASP.NET, node.js, etc. et créer un "proxy" qui obtiendra le fichier souhaité en paramètre, lira le fichier sur le serveur et enverra son contenu.

Par exemple, dans ASP.NET, vous pouvez avoir un tel code:

Download.aspx

<script language="C#" runat="server">
void Page_Load(object sender, EventArgs e)
{
    int id;
    if (!Int32.TryParse(Request.QueryString["id"], out id))
    {
        Label1.Text = "Missing or invalid ID";
        return;
    }

    string filePath = "";
    switch (id) {
        case 1:
            filePath = "c:\\test\\test.html";
            break;
    }

    if (filePath.Length == 0)
    {
        Label1.Text = "ID " + id + " does not exist";
        return;
    }

    if (!System.IO.File.Exists(filePath))
    {
        Label1.Text = "Requested file '" + filePath + "' does not exist";
        return;
    }

    System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);
    Response.Clear();
    Response.WriteFile(fileInfo.FullName);
    Response.Flush();
    Response.End();
}
</script>
<!DOCTYPE html>
<html>
<body>
<form id="form1" runat="server">
    <asp:Label ID="Label1" runat="server"></asp:Label>
</form>
</body>
</html>

Alors ayez tel iframe:

<iframe id="serviceFrameSend" src="Download.aspx?id=1" width="1000" height="1000" frameborder="0"></iframe>
1
Shadow Wizard

Vous devrez placer le fichier "test.html" dans le répertoire public sur le serveur. Sinon, rendez le répertoire "test" accessible au public.

1
Tej Patil

Vous ne pouvez pas charger depuis votre PC comme c: ... Vous pouvez uniquement charger un fichier, depuis votre serveur. Si ce fichier html et le fichier test.html se trouvent dans le même répertoire sur votre serveur, chargez-le facilement avec test.html, s'il se trouve dans un autre répertoire, utilisez le nom de répertoire tel que test/test.html

0
Tihi