Javascript 为什么这段代码在IE中工作,在Firefox和Chrome中失败?
因此,在Firefox和Chrome中加载我们的新web应用程序时,我得到一个警告,巧妙地告诉我找不到tabStrip。通过代码,我找到了此函数: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
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”不同?