所以在Firefox和Chrome中加载我们的新网络应用程序我有一个警告巧妙地告诉我找不到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大师都能给我一些方向来解释为什么三分之一的浏览器有效吗?
感谢您的帮助。
答案 0 :(得分:3)
您依靠IE的非标准功能来访问任意属性作为DOM元素的属性。
在符合标准的浏览器中,您无法编写someElement.tabStripRoot
来访问tabStripRoot
属性。
将其更改为tblList[i].getAttribute('tabStripRoot')
。