1. ホーム
  2. javascript

[解決済み] addEventListenerとattachEventの違いは何ですか?[重複しています]。

2022-03-14 14:46:32

質問

これは、私のページで使用したコードです。

if (window.addEventListener) {
   window.addEventListener("load", createIframe, false);            
}
else if (window.attachEvent) {
   window.attachEvent("onload", createIframe);            
}
else {
   window.onload = createIframe;           
}

私の createIframe という関数が呼び出されるのですか? アドベントリスナー アタッチイベント とはどのような違いがあるのでしょうか? ロード オンロード との違いを見つけるのに完全に混乱した。 addEventLisener を load で、attachEvent を onload で使用します。

どのように解決するのですか?

簡単に言うと attachEvent を返した場合、ブラウザは undefined == window.addEventListener . 前者は IE8 以前のバージョンで実装された非標準の JS 関数であること、一方 addEventListener は、IE9+(および他のすべてのブラウザ)でサポートされています。

つまり、大きな問題は、IE8-に対応するのかどうかということです。

余白のメモ window.onload = whatever は、付属のイベントリスナーを上書きします。このため addEventListener を使うのは、イベントのスタックを上書きするのではなく、関数を追加するためです。