背景
此页面的关系和层次结构是:
-A.html(域:domain1.com)
----B.html(域名:domain2.com)
--------C.html(域:domain1.com)
更重要的是,
B.html 通过 iframe 被包含在 A.html 中(iframe 的 id 为“mainIframe”);
C.html 通过 iframe 包含在 B.html 中(iframe 的 id 为“proxyIframe”);
问题
我在 C.html 中有以下函数(带有 id “proxyIframe”的 iframe):
function updateHeight() {
mainIframe = parent.parent.document.getElementById('mainIframe');
newHeigh = parent.parent.frames["mainIframe"].frames["proxyIframe"].location.hash.substr(1);
mainIframe.style.height = newHeigh;
}
function canUpdateHeight() {
if(parent!=null && parent.parent!=null && parent.parent.document!=null &&
parent.parent.document.getElementById('mainIframe')!=null &&
parent.parent.frames["mainIframe"]!=null &&
parent.parent.frames["mainIframe"].frames["proxyIframe"]!=null){
window.setInterval("updateHeight()", 200);
}
}
问题是:第二个函数内部的检查不会通过,所以第一个函数也不会被触发。请注意,这些功能在 IE7、Chrome11.x、Chrome16.x、Safari5.x 中有效,但在 Firefox 中存在问题。
问题
我想做的是使上述功能起作用,但目前我不知道现在有什么问题。使用“parent.parent”不正确?