繁体   English   中英

为什么此代码在IE中可以运行,而在Firefox和Chrome中却无法运行?

[英]Why would this code work in IE and fail in Firefox and Chrome?

因此,在Firefox和Chrome中加载我们的新Web应用程序时,我有个警报巧妙地告诉我,找不到tabStrip。 通过代码,我发现了这个功能:

function initializeTabStrip() {
    var tblList = document.getElementsByTagName("table");
    var tabStrip = null;
    for (var i = 0; i < tblList.length; ++i) {
        if (typeof (tblList[i].tabStripRoot) != "undefined") {
            tabStrip = tblList[i];
            break;
        }
    }
    if (tabStrip) {
        window.tabStrip = new TabStrip(tabStrip);
    }
    else {
        alert("couldn't find tabstrip");
    }
}

在Firefox和Chrome中, typeof (tblList[i].tabStripRoot)都未定义,而在Internet Explorer中,同一段代码将找到一个项目,并正确执行。

我尝试使用Firebug和IE的开发人员工具栏脚本调试工具进行跟踪,并尝试发现“ tabStripRoot”是什么,但是我没有任何运气。

你们中的任何一位JavaScript专家都能为我提供一些指导,以说明为什么三分之一的浏览器可以工作吗?

谢谢你的帮助。

您依赖IE的非标准功能来访问任意属性作为DOM元素的属性。

在符合标准的浏览器中,您无法编写someElement.tabStripRoot来访问tabStripRoot属性。

将其更改为tblList[i].getAttribute('tabStripRoot')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM