IE中不支持DOM值属性
DOM value property not supported in IE?
所以,我有一个小一点的javascript代码,使一个弹出式div。它的工作原理正是我所期望的。但后来我在IE上尝试了一下,它不起作用(惊讶!)我发现(令人震惊的)IE有一个开发者控制台,可以使用javascript断点。所以,我检查了我的代码,发现IE在下面代码的第4行遇到了一个错误:
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应该能够解释它。有没有人有解决这个问题的方法,或者我的代码实际上应该出错,我只是愚蠢的?
你的问题不在于"value"属性。问题是您没有使用var
声明您的局部变量。
var email = document.getElementById("email").value; //HERE IS THE ERROR!
Internet Explorer将元素的"id"值视为指向相应DOM节点的window
的属性。如果没有var
,变量"email"将是全局符号,IE不喜欢你给它分配字符串的想法。
相关文章:
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- 使用promise通过外部函数从DOM中检索属性
- 如何从动态属性将IMG插入DOM
- 迭代 DOM 中的属性
- 关于在对象属性中保存 DOM 元素
- 使用 Chai - 如何检查对象属性是否包含 DOM 元素
- DOM 元素上的空样式属性:JavaScript
- DOM 元素是否可以具有其值为任意对象(而不是字符串)的属性
- 根据DOM,HTML元素的开始和结束标记之间的内容被称为属性.这个房产的名字是什么
- 如何使用jQuery在DOM元素中添加非值属性
- 窗口对象属性返回一个dom节点
- 可以't将属性src设置为null,即使DOM已准备就绪
- 将input复选框的DOM属性更改反映到innerHTML属性中
- 正在尝试获取非对象php-DOM的属性
- 获取DOM中属性名称以某个字符串开头的所有HTML元素
- 使用Angular Directive用$scope属性更新DOM-只要指令运行(无需等待事件)
- DOM元素的属性因选择器-jQuery而异
- 修改时,哪些DOM元素属性会导致浏览器执行回流操作
- 是否可以将一个DOM元素转换为另一个?或者从中复制所有属性
- 如何使用js/jquery将数组中的数据属性获取到DOM上的h3中