我正在为网站进行跨浏览器兼容性升级,并遇到了一个非常有趣的问题。
当前的 JavaScript 用于document.all("whatever").value
访问隐藏输入、文本框、复选框等的值。
我已阅读文章和帖子,指出document.all("")
在 Firefox/Chrome 中不起作用,document.getElementById("")
请改用它,因为这是所有浏览器的标准。
所以,我决定测试我们当前的网站并通过 JavaScript 进行调试,发现它document.all
实际上是UNDEFINED并且无法提取它试图访问的值......很酷吧?
好吧,我写了一个简单的 HTML 页面只是为了对此做一个简单的测试。我创建了一个文本类型的输入并输入:
<input id="testinput" name="testinput" type="textbox" value="5" />
然后我的 JavaScript 调用看起来像:
alert(document.all("testinput").value);
结果? 该值每次都会在每个浏览器上显示在警报中。更有趣的是,当我调试 JavaScript 时,我在命令窗口 (chrome)document.all
中输入,输出未定义……但document.all("testinput").value
输出为 5。
我在这里缺少什么吗?
document.all
确实可以在现代浏览器中使用,但不推荐?我希望有人能对此有所了解,因为这种替换将需要更改大量代码。