为什么这在ie8中起作用?
function testFunction(ctrl)
{
alert(ctrl.value);
}
Run Code Online (Sandbox Code Playgroud)
我的页面上有一个javascript函数.然后我有一个id为"text1"的输入标签和一个带有以下onclick事件的按钮
<input id="text1" value="value" />
<input type="submit" onclick="testFunction(text1)" value="Click" />
Run Code Online (Sandbox Code Playgroud)
javascript函数确实提醒文本框的值,但我只是传入文本框的id,不加引号.我没有必要调用getelementbyid,它只是工作.什么是在这里做,它在Firefox中不起作用.id如何变成实际的文本框对象,我可以在其上调用cntrl.value?
PS - 我知道我不应该以这种方式使用onclick处理程序,这只是解释问题的简单方法.
谢谢
这是你的页面可能在quirks模式和IE做令人讨厌的DOM Level 0的东西的副作用.
实际的解释是,在DOM级别0上,ID会自动添加到window全局对象中,因此自动变量会在指向DOM元素的全局范围内创建.
长话短说:不要编写这样的,永远.你依赖的是一种"事实上"的标准,浏览器通常会试图模仿对方的行为,这就是IE表现得非常糟糕且其他浏览器不遵循的情况.在适当的地方使用实际的DOM方法,就像getElementById这种情况一样.
| 归档时间: |
|
| 查看次数: |
224 次 |
| 最近记录: |