为什么window [id] === document.getElementById(id)

BiA*_*AiB 7 javascript

我注意到在几个浏览器中,dom元素只能通过它们的id访问:

HTML

<div id="chocolat"></div>
Run Code Online (Sandbox Code Playgroud)

JS

alert(chocolat.id); //alerts "chocolat
chocolat; //points to the node
window.chocolat; //idem
chocolat === document.getElementById('chocolat'); // true
Run Code Online (Sandbox Code Playgroud)

(在这里测试:http://jsfiddle.net/GUUPT/)这适用于Chrome上的某些版本的IE,但它不适用于Firefox(5).

我好奇这是从哪里来的?这是标准吗?

Que*_*tin 6

  • 这是非标准的
  • 它是由Internet Explorer(版本4 IIRC)启动的
  • 如果您使用的是最新版本的IE,它只能在Quirks模式下工作

  • 最后但并非最不重要的是,它没用.只会导致代码不兼容且难以调试. (4认同)
  • 现在,这已成为HTML5标准的一部分。请参阅:http://w3c.github.io/html/browsers.html#named-access-on-the-window-object (2认同)