在iframe上加载本地html

时间:2017-02-22 13:38:24

标签: javascript html iframe

我位于.html上的c:\test\test.html页面中。

我想在客户端计算机上的iframe中显示test.html,我该怎么做?

我尝试了什么:

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

但它在客户端计算机上找到了test.html文件,那么如何才能从服务器加载test.html

如果不可能,我该怎么做呢?

4 个答案:

答案 0 :(得分:6)

当你在服务器上有页面时,你需要使用以下一些例子:

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

如果test.html与主页位于同一目录中,则需要使用此功能。

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

如果test.html位于主页的上一个目录中,则需要使用此选项。 path/views/test/test.htmlpath/views/main/page.html

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

如果您知道要打开test.html

的网址,则需要使用此功能

答案 1 :(得分:1)

你必须放置&#34; test.html&#34;在服务器上提交公共目录。或者做出&#34;测试&#34;目录可公开访问。

答案 2 :(得分:1)

您必须使用服务器端语言,如PHP,ASP.NET,node.js等,并创建一个“代理”,它将获取所需的文件作为参数,读取服务器上的文件,并发送其内容。

例如,在ASP.NET中,您可以使用以下代码:

<强> 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>

然后有这样的iframe:

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

答案 3 :(得分:0)

您无法从PC上加载c:...您只能从服务器加载文件。如果这个html文件和test.html文件在服务器上的同一目录下,可以轻松加载test.html,如果它在另一个目录中,那么使用目录名称,如test / test.html