document
とは異なるオブジェクトであり、window
いくつかの異なるイベントがあります。それらを使用addEventListener()
すると、別のオブジェクト宛てのイベントをリッスンします。興味のあるイベントが実際にあるものを使用する必要があります。
たとえば、オブジェクト上にない"resize"
イベントがオブジェクト上にあります。window
document
たとえば、"readystatechange"
イベントはdocument
オブジェクト上でのみ発生します。
.addEventListener()
したがって、基本的には、どのオブジェクトが関心のあるイベントを受け取り、その特定のオブジェクトで使用するかを知る必要があります。
これは、どのタイプのオブジェクトがどのタイプのイベントを作成するかを示す興味深いチャートです:https ://developer.mozilla.org/en-US/docs/DOM/DOM_event_reference
伝播されたイベント(クリックイベントなど)をリッスンしている場合は、ドキュメントオブジェクトまたはウィンドウオブジェクトのいずれかでそのイベントをリッスンできます。伝播されるイベントの唯一の主な違いは、タイミングです。イベントは階層の最初に発生するため、オブジェクトのdocument
前にオブジェクトにヒットしますwindow
が、その違いは通常重要ではないため、どちらかを選択できます。一般に、伝播されたイベントを処理するときに、ニーズを満たすイベントのソースに最も近いオブジェクトを選択する方が適切だと思います。それはあなたがどちらかがうまくいくときを選ぶことを示唆するでしょdocument
うwindow
。しかし、私はしばしばソースにさらに近づきdocument.body
、ドキュメント内のより近い共通の親を使用します(可能な場合)。