window.frames.length在chrome和Firefox浏览器中返回0
window.frames.length returns 0 in chrome and Firefox browser
我在Chrome和firefox上遇到了这个问题,函数crse_FrameExists()内的window.frames.length总是返回零,而实际上它应该返回值3和true才能继续。我对IE9没有任何问题。有人知道为什么会发生这种事吗。任何变通办法都是有用的。。。谢谢下面的代码段:
alert(window.frames.length);
返回0作为IE 中的3
将frameset
放入head
或body
是非法的。
把它直接放在head
后面(没有body
),你就没事了。
例如:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<script>
function crse_FrameExists(frameName){
for (i = 0; i < window.frames.length; i++) {
if (window.frames[i].name == frameName) return(true);
}
return(false);
}
window.onload=function(){
alert("crse_FrameExists('fra_header'):" + crse_FrameExists('fra_header') );
};
</script>
</head>
<frameset id="Nav4mainFrameset" framespacing="0" border="false" frameborder="0" rows="76,*">
<frame name="fra_minimain" id="fra_minimain" scrolling="no" noresize src="index2.html">
<frameset cols="188,*">
<frame name="fra_header" id="fra_header" scrolling="no" noresize src="index2.html">
<frame name="fra_content" id="fra_content" scrolling="auto" noresize src="index2.html">
</frameset>
</frameset>
</html>
不要忘记在测试中使用http://
而不是file://
打开页面,因为Chrome的安全模型将每个文件视为一个域。
不要将for="window" event="onload()"
放在脚本元素中:这不是标准化的,在非MS浏览器上也不起作用。你必须使用一个标准的加载解决方案,就像我的例子一样。
相关文章:
- 当使用ajax并将html数据保存为对象时,收听浏览器返回按钮.好的或坏的
- 使用Javascript或AngularJS控制或禁用浏览器返回按钮
- 浏览器返回按钮上的确认框
- 当我点击浏览器返回选项时,阻止在php上刷新页面
- 检测用户是否通过浏览器返回按钮到达当前页面
- Safari浏览器返回按钮问题
- Web浏览器返回按钮应返回到特定页面
- 一旦用户登录JSF页面,就禁用浏览器返回按钮
- 在浏览器返回/forwd 按钮单击时保存/恢复所有 JavaScript 变量
- 在浏览器返回时使window.history.state null的可能情况是什么
- 在浏览器返回时触发事件,并使用新 url 强制刷新或重新加载页面
- eval 返回未定义,浏览器返回结果
- 如何区分浏览器返回和用户手动更改位置哈希
- 浏览器返回上一页功能,如果返回如何重新加载文档
- 浏览器返回后,jquery Get 不会触发
- Perl:不向浏览器返回任何内容
- 使用浏览器返回时,Angular $location不会更新
- 绑定事件在Chrome上失败,但在浏览器返回时在Firefox中正常
- 我怎么知道在Firefox中是点击了刷新按钮还是浏览器返回按钮
- 点击Ipad浏览器返回按钮