ホームページ > ウェブフロントエンド > jsチュートリアル > IE8 で「onclick イベント ハンドラーが失敗するのはなぜですか? それらを修正するにはどうすればよいですか?」

IE8 で「onclick イベント ハンドラーが失敗するのはなぜですか? それらを修正するにはどうすればよいですか?」

Linda Hamilton
リリース: 2024-11-28 07:11:10
オリジナル
874 人が閲覧しました

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 で適切に機能するようになりました。

    以上がIE8 で「onclick イベント ハンドラーが失敗するのはなぜですか? それらを修正するにはどうすればよいですか?」の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

  • ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    著者別の最新記事
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート