所以,我有一個JavaScript代碼,使一個彈出div。它的工作原理與我預期的完全相同。但後來我試圖在IE瀏覽器上,它不起作用(驚喜!)。我發現(令人震驚的是)IE有一個開發者控制檯,可以使用javascript斷點。所以,我通過我的代碼去了,並且發現了IE在下面的代碼遇到第4行的錯誤:在IE中不支持DOM值屬性?
function makePopUp() {
div = document.getElementById("shell");
if(!div) {
email = document.getElementById("email").value; //HERE IS THE ERROR!
popupshell = document.createElement("div");
popupinner = document.createElement("div");
popupshell.id = "shell";
popupinner.id = "inner";
popupinner.innerHTML = "A crazy long string (HTML of the popup)"
popupshell.appendChild(popupinner);
document.body.appendChild(popupshell);
}
else { //This just blinks the popup window if it already exists.
blink(div);
t = setTimeout("blink(div);",100);
t = setTimeout("blink(div);",200);
t = setTimeout("blink(div);",300);
t = setTimeout("blink(div);",400);
t = setTimeout("blink(div);",500);
}
}
IE給我的錯誤「對象不支持此屬性或方法」。我認爲它指的是輸入標籤的值屬性,我使用id爲「email」。此屬性是DOM 1 & 2 ...所以IE應該能夠解釋它。有沒有人有解決這個問題,或者是我的代碼實際上應該是一個錯誤,我只是愚蠢?
旁註:不要將字符串傳遞給'setTimeout',傳遞函數。 'setTimeout(function(){blink(div);},100);' – 2011-12-29 23:08:45
什麼是'email'?一個div,一個輸入欄,一個textarea? – 2011-12-29 23:09:33