Javascript 为什么这段代码在IE中工作,在Firefox和Chrome中失败?

Javascript 为什么这段代码在IE中工作,在Firefox和Chrome中失败?,javascript,browser,Javascript,Browser,因此,在Firefox和Chrome中加载我们的新web应用程序时,我得到一个警告,巧妙地告诉我找不到tabStrip。通过代码,我找到了此函数: function initializeTabStrip() { var tblList = document.getElementsByTagName("table"); var tabStrip = null; for (var i = 0; i < tblList.length; ++i) { if

因此,在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");
    }
}
函数initializeTabStrip(){
var-tblList=document.getElementsByTagName(“表”);
var-tabStrip=null;
对于(变量i=0;i
在Firefox和Chrome中,
typeof(tblList[i].tabStripRoot)
都是未定义的,而在Internet Explorer中,同一段代码将找到一个项目,并正确地执行

我曾尝试使用Firebug和IE的开发者工具栏脚本调试工具来完成并试图发现什么是“tabStripRoot”,但我没有任何运气

你们JavaScript大师中有谁能告诉我为什么三分之一的浏览器都能工作


感谢您的帮助。

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

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


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

您能再解释一下吗?谢谢他说,自定义ATAttribute(tabStripRoot)仅作为MSIE的属性,而不是符合标准的浏览器。哦,正如他所说的,只要用他的代码替换它,它就可以在所有浏览器上运行。虽然将代码更改为getAttribute确实可以阻止警报触发,但我现在循环遍历列表中的所有元素。“getAttribute()”是否区分大小写,如“tabStripRoot”与“tabStripRoot”不同?