2013-06-30 56 views
1

將瀏覽器擴展從FF移植到chrome。我有這樣的XMLHttpRequest,工作正常:XML to JSON在firefox中工作,但在chrome中產生TypeError

var xhrdata = new XMLHttpRequest(), 

xhrdata.onreadystatechange = function() {    
    if (xhrdata.readyState === 4) { 
     if (xhrdata.status === 200) {     
      getJXONTree(xhrdata.responseXML);     
     } 
    } 
}; 
xhrdata.open("GET", "mydomain.com/my.xml", true); 
xhrdata.responseType = "document"; 
xhrdata.send(); 

這送.responseXML到這個功能(縮短)

function getJXONTree(oXMLParent) { 
    var vResult = true, nLength = 0, sCollectedTxt = ''; 
    if (oXMLParent.hasAttributes()) { 
    vResult = {}; 
    [...] 

這在Firefox精絕,但在鉻,輪詢完全相同的XML與完全相同的代碼,我得到這個錯誤:

TypeError: Object #<Document> has no method 'hasAttributes' 

我在這裏錯過了什麼?

+0

確保您使用正確的內容類型 – meda

+1

文檔不能有任何屬性。火狐在這一點上是錯誤的。您需要在節點上使用'hasAttributes',例如通過使用'getJXONTree(xhrdata.responseXML.documentElement);' –

+0

@robW jep那是對的,謝謝! – user2420172

回答

1

Firefox是較爲寬鬆的,當談到這一點,但它必須是:

xhr.responseXML.documentElement 

因爲文件不具有任何屬性。謝謝@robW

相關問題