ホームページ >ウェブフロントエンド >jsチュートリアル >MSIE の「copy」イベントに対して「addEventListener」が機能しないのはなぜですか?
MSIE での addEventListener の問題の解決
JavaScript で、addEventListener を使用して 'copy' イベントを実装しようとすると、次のエラーが発生する場合があります。 MSIE:
<code class="javascript">document.getElementById('container').addEventListener('copy',beforecopy,false ); Object doesn't support this property or method</code>
ソリューション
MSIE は標準の addEventListener アプローチから逸脱しており、代わりに 'attachEvent' を使用する必要があります。これは、条件チェックによって実現できます:
<code class="javascript">if (el.addEventListener){ el.addEventListener('click', modifyText, false); } else if (el.attachEvent){ el.attachEvent('onclick', modifyText); }</code>
また、カスタム関数を作成してこのプロセスを抽象化することもできます:
<code class="javascript">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'); });</code>
ボーナス: 3 番目のパラメーター (useCapture)
addEventListener ('useCapture') の 3 番目の引数は、イベント処理の優先順位を決定します。 true に設定すると、イベントのキャプチャが必要であることを示します。イベントは、ターゲット要素に到達する前に要素の祖先で処理されます。
以上がMSIE の「copy」イベントに対して「addEventListener」が機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。