javascript - window.frames.length 在 chrome 和 Firefox 浏览器中返回 0

标签 javascript html firefox google-chrome

我在 Chrome 和 firefox 上有这个问题,函数 crse_FrameExists() 中的 window.frames.length 总是返回零,而实际上它应该返回值 3 和 true命令继续。我在 IE9 上没有问题。有谁知道为什么会这样。任何解决方法都会有用...... 谢谢, 下面的代码片段:

alert(window.frames.length);

在 IE 中返回 0 到 3

最佳答案

将您的框架集放在headbody中是非法的。

将它直接放在 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 浏览器上工作。您必须像我的示例一样使用标准的加载解决方案。

关于javascript - window.frames.length 在 chrome 和 Firefox 浏览器中返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11393095/

相关文章:

javascript - 哪个版本的 firefox 将支持 Web SQL?

javascript - 再次运行函数时,它不会读取全局数组

Firefox 同站点 cookie

javascript - 如何防止使用 jQuery 或 Javascript 重复提交?

javascript - 在 jQuery 中验证邮政编码?

javascript - 未定义索引 : avatar

javascript - 如何向谷歌地图添加多个标记?

css - 将 div 高度设置为自动时不显示背景颜色!为什么?

javascript - 清除使用 Google Chart chart.draw() 方法绘制的 Div

Firefox pdf 表单在复选框中显示 "4"(而不是复选标记);在 IE 和 Chrome 中运行良好