Javascript 在什么标准中指定id为的元素也可以获得全局变量?

Javascript 在什么标准中指定id为的元素也可以获得全局变量?,javascript,dom,Javascript,Dom,我很久以前就注意到了这一点,但是我从来没有找到任何关于为什么浏览器首先支持这一点的信息 在每个主要浏览器中,都可以通过使用元素id作为全局变量来引用页面上的元素显示了它的工作原理示例。您也可以自己尝试(在此页面上),只需打开控制台并在其中粘贴footer(这将返回此页面上的),或者如果您想在没有控制台的浏览器上尝试,只需从您的url栏运行javascript:alert(footer),它将提醒“[object htmldevelment]”或者类似的东西 我已经在Chrome、Firefox、

我很久以前就注意到了这一点,但是我从来没有找到任何关于为什么浏览器首先支持这一点的信息

在每个主要浏览器中,都可以通过使用元素id作为全局变量来引用页面上的元素显示了它的工作原理示例。您也可以自己尝试(在此页面上),只需打开控制台并在其中粘贴
footer
(这将返回此页面上的
),或者如果您想在没有控制台的浏览器上尝试,只需从您的url栏运行
javascript:alert(footer)
,它将提醒“[object htmldevelment]”或者类似的东西

我已经在Chrome、Firefox、Opera甚至InternetExplorer上进行了测试,在每一种浏览器上都能正常工作。但是,在搜索了关于它的任何标准之后,我找不到任何东西


我的问题是,为什么这在每一个浏览器中都有效?这是任何标准的一部分吗?或者这只是核心JavaScript?

正如我在评论中引用的链接所述,没有标准。相反,Internet Explorer实现的行为和其他浏览器为了兼容性而复制的行为与文档对象模型(DOM)有关,DOM定义了文档的逻辑结构以及访问和操作文档的方式。这不是最佳实践,最好使用document.getElementById();避免命名冲突等


这是对前面这个问题的一个示例回答

据我所知,它不在任何规范中,这在Chrome中工作对我来说是新闻。是吗?@JanDvorak是的。您可以通过打开我链接的JSFIDLE,或者运行我描述的任何一种进一步的测试方法来尝试javascript@StephenThomas,我认为它相当于这个的复制品:。Joetje50,你是否从那里复制了JSFIDLE示例?看起来就像那样@托马斯:不,我没有。不过,这似乎是一种简单的方式来证明它是有效的,因此,如果设计用于实现这一点的脚本看起来很相似,那么这将是有意义的。