2013-03-15 70 views
3

因此,我正在爲我的網站開發一個JavaScript搜索器,並且已經過了幾天,當我意識到它與Chrome不兼容時,我查看了一些其他瀏覽器,並意識到它可以在Firefox和IE9中使用,但在Chrome或Safari中無法使用。JavaScript Chrome似乎並不支持通過setAttributeNode添加ID

我一直在調試Chrome和火狐瀏覽器並排了幾個小時,不能爲我的生活找出問題是什麼。它不斷給我一個錯誤。我確切地知道錯誤意味着什麼,爲什麼它給了我錯誤,但我無法弄清楚是什麼造成了錯誤。

這是錯誤:未捕獲的類型錯誤:無法設置爲null

我知道這意味着有與該ID的對象的特性「的innerHTML」,但我設置的目的是有編號的權利之前。在該代碼行的Firefox調試器中,它表示已設置了Id,但在Chrome調試器的同一行中,它表示它沒有。

下面是代碼的摘錄:

arrayFinal[arrayln2]="end"; 
    var displayNumber=0; 
    while(arrayFinal[displayNumber].charAt(0) != "e"){ 
    var boxPath="camper_htmls/"+arrayFinal[displayNumber]+".txt"; 
    boxhttp = new XMLHttpRequest(); 
    boxhttp.open("GET",boxPath,false); 
    boxhttp.send(null); 
    var boxHTML = boxhttp.responseText; 
    var setDivId=document.createAttribute("Id"); 
    setDivId.value=("div_"+displayNumber); 
    var node = document.createElement("div"); 
    node.setAttributeNode(setDivId); 
    document.getElementById("resultContainer").appendChild(node); 
    var divIdNumber = ("div_"+displayNumber); 
    document.getElementById(divIdNumber).innerHTML=boxHTML; 
    displayNumber++; 
    } 

雖然這個代碼的版本被用來對網站的幾乎每一頁,和他們沒有工作。

回答

4

使用id代替Id

var setDivId=document.createAttribute("id"); 

DEMO

+0

謝謝謝謝謝謝!有效! iv一直試圖弄清楚幾個小時。你知道爲什麼鉻不會接受ID,當Firefox將? – nife552 2013-03-15 02:03:42

+0

答案在被刪除的原始問題中。大聲笑。如果你注意,你會在3小時前得到答案。 – epascarello 2013-03-15 02:07:27

+1

每個人都對我沒有檢查調試器而感到生氣,並將問題投下來,所以我剛剛刪除了這個問題。然後去了YouTube並學會了如何使用調試器。但它顯然沒有幫助。 – nife552 2013-03-15 02:10:13