如何在iframe中加载网页

时间:2014-01-24 03:44:41

标签: c# javascript jquery html iframe

我有两个来自用户的静态页面,这些页面部署在他们的服务器上。目前我正在从代码后面调用他们的服务器并加载它们。但现在我不想在电话后面制作代码。相反,我想在iframe中加载这些静态页面。这些静态页面的链接(URL)存储在我的web.config中。在初始化调用期间使用C#我在隐藏字段中复制这些URL并将它们分配给iframe的src,如下所示:

<script>
    var bLoaded = false;
    function LoadIframe1() {
        if (!bLoaded) {
            var iframe1 = document.getElemetById('iframe1');
            if (typeof (iframe1) != 'undefined' && iframe1 != null) {
                iframe1.src = hiddenfield.value;
                bLoaded = true;
            }
        }
    }
</script>

<iframe id="iframe1" onload="Loadframe1();" />

现在问题是如果文件在项目目录中,它工作正常。但是如何加载不在解决方案目录中的文件?

2 个答案:

答案 0 :(得分:5)

为什么使用JavaScript?你为什么不在渲染上设置src

<iframe id="iframe1" src="<%= ExternalPageUrl %>" />

在codebehind中有一个返回URL的属性

protected String ExternalPageUrl
{
    get
    { 
        return "http://www.example.com/path/to/page-you-need.html";
    }
}

答案 1 :(得分:1)

如果没有更多信息,很难肯定地说 - 例如可能会在浏览器的开发工具中报告错误,但您可能会碰到SAMEORIGIN restriction

以下是Chrome开发者工具控制台如何报告它的示例...

  

拒绝在一个框架中显示“https://stackoverflow.com/”,因为它将“X-Frame-Options”设置为“SAMEORIGIN”。

...将'http://stackoverflow.com'分配给iframe1.src

无论您使用的是代码隐藏还是JS,都需要考虑这一点。

请参阅related SO community wiki question & answers了解如何适合您的情况。