這個功能來源于 IE,後來firefox 和 chrome 也支援了。現在是 w3c 非正式的标準,不建議使用。
這個可以是id,input的name等,有一定的限制,浏覽器相容問題。
是不規範操作。
首先要知道什麼是Browser對象
BOM:Browser Object Model,即浏覽器對象模型,提供了獨立于内容的、可以與浏覽器視窗進行互動的對象結構。
Browser對象:指BOM提供的多個對象,包括:Window、Navigator、Screen、History、Location等。
其中Window對象為頂層對象,其他對象都為Window對象的子對象。
如果在HTML文檔中用id屬性為元素命名,并且如果Window對象沒有此名字的屬性,Window對象會賦予一個屬性,它的名字是id屬性的值,而他們的值指向表示文檔元素的HTMLElement對象。在用戶端JavaScript中,Window對象是以全局對象的形式存在于作用域鍊的最上層,這就意味着在HTML文檔中使用的id屬性會成為可以被腳本通路的全局變量。如果文檔包含一個<div id="okay"></div>元素,可以通過全局變量okay來引用此元素。但是,有一個重要警告:如果Window對象已經具有此名字的屬性,這就不會發生。比如,id是“history”、“location”、或“navigator”的元素,就不會以全局的形式出現,因為這些ID已經占用了。同樣,如果HTML文檔包含一個id為“x”的元素,并且還在代碼中聲明并指派給全局變量x,那麼顯式聲明的變量會隐藏隐式的元素變量。如果腳本中的變量聲明出現在命名元素之前,那這個變量的存在就會阻止元素擷取它的window屬性。而如果腳本中的變量聲明出現在命名元素之後,那麼變量的顯式指派會覆寫該屬性的隐式值。
可以參考JavaScript權威指南14.7章【作為Window對象屬性的文檔元素】
http://www.runoob.com/jsref/obj-window.html