首頁 > web前端 > js教程 > 為什麼我的 `` onclick 事件處理程序在 IE8 中失敗,如何修復它們?

為什麼我的 `` onclick 事件處理程序在 IE8 中失敗,如何修復它們?

Linda Hamilton
發布: 2024-11-28 07:11:10
原創
829 人瀏覽過

Why Do My `` onclick Event Handlers Fail in IE8, and How Can I Fix Them?

IE8「Onclick」事件偵聽器與

  • 的問題標籤
  • 在IE8 中使用提供的JavaScript 程式碼時, 的「onclick」事件處理程序將會被呼叫。元素可能無法如預期運作。此問題源自於 IE8 及早期版本的瀏覽器不支援「addEventListener」方法。

    解決方案:

    要解決此問題,有一個解決方法可以使用涉及IE8中「addEventListener」的非標準前身,即「attachEvent」。以下是使用此方法的 JavaScript 程式碼的修改版本:

    hookEvent(document.getElementById("hd_vertical"), "click", function(e) {
            if(e.target.nodeName == "LI") { 
                var _anchor = e.target.id;
                changeLocation(_anchor);
            } else if(e.target.nodeName == "SPAN") {
                var span = e.target;
                var li = span.parentNode;
                var _anchor = li.id;   
                changeLocation(_anchor);
        }
    });
    登入後複製

    此程式碼的工作原理如下:

    • hookEvent:此函數檢查「addEventListener」或「attachEvent」的可用性,並為各自使用適當的版本browser.
    • OldIEHookEvent: 此函數在IE8 及更早版本的瀏覽器中使用「 attachEvent”將事件處理程序附加到元素。它還填補了缺少的函數,如“preventDefault”和“stopPropagation”。

    注意: IE8 也缺乏對「getElementsByClassName」的支援。考慮使用「querySelector」或「querySelectorAll」來取代:

    var _url = document.querySelector("." + id).getAttribute('href');
    登入後複製

    透過實作這些更改,

  • 的「onclick」事件處理程序元素現在應​​該在 IE8 中正常運作。
  • 以上是為什麼我的 `` onclick 事件處理程序在 IE8 中失敗,如何修復它們?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    來源:php.cn
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    作者最新文章
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板