JavaScript における MSIE および addEventListener の問題
document.getElementById('container') 要素の addEventListener メソッドを利用して実行しようとしたときWeb ページ上でコンテンツをコピーするときに「beforecopy」関数を使用すると、Internet Explorer (MSIE) で「オブジェクトはこのプロパティまたはメソッドをサポートしていません」というエラーが発生することがあります。
この問題は、MSIE が次の使用を必要とするために発生します。標準の addEventListener メソッドの代わりにattachEventを使用します。この問題を解決するには、addEventListener メソッドが利用可能かどうかを確認し、利用可能な場合はそれを使用します。そうでない場合は、attachEvent:
if (el.addEventListener){ el.addEventListener('click', modifyText, false); } else if (el.attachEvent){ el.attachEvent('onclick', modifyText); }
を使用します。別の方法は、このタスクを実行する関数を作成することです:
function bindEvent(el, eventName, eventHandler) { if (el.addEventListener){ el.addEventListener(eventName, eventHandler, false); } else if (el.attachEvent){ el.attachEvent('on'+eventName, eventHandler); } } bindEvent(document.getElementById('myElement'), 'click', function () { alert('element clicked'); });
addEventListener の 3 番目の引数は useCapture で、これを true に設定すると、イベント キャプチャを開始する必要があることを示します。
以上がMSIE で「addEventListener」がエラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。