イベント処理のブラウザ間互換性
addEventListener メソッドは、Web 開発でイベント ハンドラーを追加するための標準として広く認識されています。ただし、バージョン 9 より前の Internet Explorer では、attachEvent メソッドで別のアプローチが使用されていました。
Internet Explorer 9 以降
Internet Explorer 9 以降のバージョンでは、addEventListenerメソッドは完全にサポートされています。これは、ブラウザ間の互換性のために次のコードを利用できることを意味します:
if (!Element.prototype.addEventListener) { Element.prototype.addEventListener = function() { .. } }
このコードは、Element オブジェクトに addEventListener メソッドが存在するかどうかを確認し、存在しない場合はメソッドを追加します。これにより、すべての要素が Internet Explorer 9 以降で addEventListener をサポートするようになります。
Internet Explorer の addEventListener と同等の機能
Internet Explorer 9 より前では、attachEvent メソッドがaddEventListener と同等。ただし、attachEvent は最新のブラウザではサポートされていないことに注意することが重要です。
クロスブラウザ イベント処理ソリューション
異なるブラウザ間でイベントを一貫して処理するには、次のことができます。次の関数を使用します:
function addEvent(evnt, elem, func) { if (elem.addEventListener) // W3C DOM elem.addEventListener(evnt,func,false); else if (elem.attachEvent) { // IE DOM elem.attachEvent("on"+evnt, func); } else { // No much to do elem["on"+evnt] = func; } }
この関数は、要素が addEventListener またはattachEvent をサポートしているかどうかを確認し、それに応じてイベント ハンドラーをアタッチします。どちらのメソッドも使用できない場合は、関数を要素のイベント プロパティに直接割り当てます。
以上がイベント処理用にクロスブラウザー互換のコードを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。