我有两个来自用户的静态页面,这些页面部署在他们的服务器上。目前我正在从代码后面调用他们的服务器并加载它们。但现在我不想在电话后面制作代码。相反,我想在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();" />
现在问题是如果文件在项目目录中,它工作正常。但是如何加载不在解决方案目录中的文件?
答案 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了解如何适合您的情况。