全域變數與DOM 元素ID:瀏覽器不一致與規範合規性
在Web 開發領域,辨識與操作DOM 元素是至關重要的。然而,當將具有 ID 的元素指派為全域變數時,跨瀏覽器會出現不一致。
Chrome 中的全域變數可訪問性
根據前面提到的Chrome 行為,具有ID 的元素將成為全域變數可以像它們的ID 是全域變數名一樣進行訪問。這允許使用 a.stuff() 語法方便地操作元素。
FireFox 行為和 W3 規範合規性
與 Chrome 相比, FireFox 需要使用 document.getElementById('a') 來存取具有 ID 的元素。這符合 HTML4 規範,該規範沒有將 ID 屬性定義為全域變數。
歧義與瀏覽器解析
當全域變數和元素ID 共用時相同的名稱,如「var a;
具有特殊屬性的元素ID包含連字符(“-”)、冒號(“:”)和句點(“.”)的字元
元素ID 會以不同方式轉換為全域變量,透過document.getElementById 訪問它們可保證行為一致。 ,而目前規格未指定它們對全域變數名稱的翻譯。元素污染全域命名空間,而是選擇使用document.getElementById() 或JavaScript 框架(如jQuery)來建立對的正確引用。 。
以上是全域變數與 DOM 元素 ID:為什麼瀏覽器行為不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!