我目前正在尝试使用iframe在子域中加载页面到我的主域,并让子域在我的主域中调用javascript函数(当dom-ready时),以便主域可以根据内容的高度调整iframe的大小。 这是一个例子
www.mysite.com(页面内的代码):
<script type="text/javascript">
document.domain = "mysite.com";
function doSomething() {
//do something
}
</script>
<iframe id="mytestid" src="test.mysite.com" height="0" width="900"></iframe>
对于我的其他网站test.mysite.com,这是页面中的代码:
<script>
document.domain = "mysite.com";
$(document).ready(function () {
window.parent.doSomething();
});
</script>
这似乎适用于firefox,safari和chrome,但不适用于IE8。
在拨打电话window.parent.doSomething()
我无法在IE7或IE6上测试以查看问题是否仍然存在,但是有没有人遇到过此问题?我是否错过了我正在编写代码的方式?
感谢帮助人员。
答案 0 :(得分:2)
document.domain“权限被拒绝”问题IE8已解决!!
就像其他用户说的那样,只需设置iframe在页面上的document.domain后几秒钟的超时,然后在iframe中调用你的第二页。
你需要设置你的iframe的SRC值,在IE8上设置document.domain几秒钟之后就可以了。
答案 1 :(得分:1)
这是一个关于一些可能的问题的很多评论的帖子:
注意我没有测试这个,因为我没有IE。不幸的是,似乎没有从我的角度来说是令人信服的 - 尝试一下,看看它是否适合你。
所以,从上面的帖子看,似乎有两个可能的原因:
iframes
等),请尝试删除它们并仅使用这两个(主要和iframe)进行测试setTimeout
设置为相同的值后,尝试将其放入document.domain
并等待几秒钟答案 2 :(得分:1)
我遇到了同样的问题并且使用超时并没有解决问题。
由于我有另一个具有类似设置的网站,所有工作正常,我并排打开两个窗口,并在底部的状态栏中注意到一个位于“本地Intranet”下,而另一个位于“可信站点”下
这让我有了另一个要检查的地方:确保两个子域都出现在IE的Internet安全属性的同一个安全区中!如果他们不这样做,那么你将有一个“权限被拒绝”的错误。