2011-01-25 48 views
1

因此,在Firefox和Chrome瀏覽器中加載我們的新Web應用程序我有一個微妙的警告告訴我,找不到tabStrip。通過下面的代碼,我發現這個功能:這段代碼爲什麼會在IE中運行,並在Firefox和Chrome中失敗?

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大師能夠給我一些指導爲什麼三分之一的瀏覽器有效?

感謝您的幫助。

回答

3

您依靠IE的非標準功能來訪問任意屬性作爲DOM元素的屬性。

在符合標準的瀏覽器中,不能編寫someElement.tabStripRoot來訪問tabStripRoot屬性。

將其更改爲tblList[i].getAttribute('tabStripRoot')

+0

你能多解釋一下嗎?謝謝! – Chris 2011-01-25 17:11:21

相關問題