所以,我有一个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