2011-06-01 67 views
0

我正在構建一個firefox擴展,並且在擴展中我正在做一個ajax請求,它返回一個responseText,現在我想解析js中的responseText,但我無法解析該請求。無法解析xmlHttpRequest responseText在Firefox擴展中

請注意,如果我在我的網絡服務器上運行相同的代碼,那麼它完美的作品。下面是代碼

var myHTML = XHR.responseText; 
var tempDiv = document.createElement('div'); 

tempDiv.innerHTML = myHTML; 
tempDiv.childNodes; 
tempDiv.getElementsByTagName('a'); // etc. etc. 

如果我在我的網絡服務器使用此代碼,然後我可以解析的childNodes和檢索它們的值,但如果我在Firefox擴展使用相同的代碼,那麼我不能夠訪問childNodes,儘管我可以在firefox擴展中使用它時看到responseText。

我對這個無所謂的相同代碼的行爲有點困惑,請幫我解決。

回答

0

innerHTML setter的行爲取決於您所處的文檔類型。Firefox chrome是一個XML文檔,因此myHTML字符串將在上面的代碼片段中被解析爲XML。在網頁中,您可能正在編寫HTML,而不是XML,因此需要進行HTML解析。你的字符串碰巧是正確的HTML但不是格式良好的XML?

+0

感謝您的建議。是的,我的字符串是一個HTML,但沒有形成良好的XML。因此,你的意思是如果我的字符串格式良好的XML,那麼我將能夠解析我的Firefox擴展。但是如果我想在Firefox擴展中解析字符串爲html?請讓我知道如何解析在Firefox中通過xmlHttpRequest返回的html字符串? – 2011-06-03 04:59:50

+0

你可以創建一個'