Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript似乎允许直接通过其id获取html对象?_Javascript_Html - Fatal编程技术网

javascript似乎允许直接通过其id获取html对象?

javascript似乎允许直接通过其id获取html对象?,javascript,html,Javascript,Html,最近我注意到我朋友的代码有点奇怪。起初我认为这是一个错误,但后来我测试了它,它似乎工作。请查看此简单代码(请注意“button\u test.click()”): var test=函数(){ 警惕(“你好”); } 点击 按钮测试。单击(); 它最初是未定义的行为,但由于编写了大量依赖于它的代码,浏览器供应商实现了它,现在HTML5规范对此给出了定义 不要依赖它,因为行为是不可预测的,它会使代码的可读性大大降低 请参见JavaScript中充满了“有效”但不是一个好主意的东西 改用这个:

最近我注意到我朋友的代码有点奇怪。起初我认为这是一个错误,但后来我测试了它,它似乎工作。请查看此简单代码(请注意“button\u test.click()”):


var test=函数(){
警惕(“你好”);
}
点击
按钮测试。单击();

它最初是未定义的行为,但由于编写了大量依赖于它的代码,浏览器供应商实现了它,现在HTML5规范对此给出了定义

不要依赖它,因为行为是不可预测的,它会使代码的可读性大大降低


请参见

JavaScript中充满了“有效”但不是一个好主意的东西

改用这个:

document.getElementById('button_test')
或者确保在使用按钮前定义了按钮测试:

if(!window.button_test) button_test = document.getElementById('button_test');
Internet Explorer始终(或至少在很长一段时间内)将元素id值公开为引用DOM元素的全局符号(窗口的属性)。多年来,其他浏览器也采用了同样的做法。就我个人而言,我认为这是一个绝对糟糕的想法,但你看吧。查看更多信息,了解为什么会发生这种情况(以及为什么依赖这种行为是个坏主意)。