我有两个框架。两个框架中的页面都来自同一域(本地主机或活动域 - 都使用相同的协议)。
当第二个框架 (xsample) 完全加载并且任何 onload JS 函数完成时,第一个框架需要访问第二个框架 (xsample) 的元素。但第二帧需要一段时间才能加载。
<frameset cols="*,*" rows="*" border="0" framespacing="0">
<frame src="picker.asp" name="xpicker" frameborder="no" marginwidth="15" marginheight="15">
<frame src="doc.asp" name="xsample" frameborder="no" marginwidth="15" marginheight="15">
</frameset>
下面的代码适用于 IE 和 Firefox,但不适用于 Chrome 或 Safari,在这些中parent.xsample
总是假的
function startWork(){
if(isSurveyLoaded()==false){
SL=setTimeout("startWork()",1000);
return;
}
else{
setTimeout("doMoreWork()",2000);
}
}
function isSurveyLoaded(){
if(!parent.xsample){
return false;
}
if(!parent.xsample.self.name){
return false;
}
if(parent.xsample.document.readyState!='complete'){
return false;
}
else{
return true;
}
}
Use parent.frames["xsample"]
访问框架。
对命名元素的隐式引用global
对象没有标准化。
换句话说,永远不要这样做setTimeout("doMoreWork(), 1000)"
因为这会强制虚拟机使用 eval 来执行代码。
Use setTimeout(doMoreWork, 1000)
哪一个是proper方法来做到这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)