Die documentund windowsind verschiedene Objekte und sie haben verschiedene Ereignisse. Verwenden vonaddEventListener() sie verwenden, werden Ereignisse abgehört, die für ein anderes Objekt bestimmt sind. Sie sollten diejenige verwenden, die tatsächlich das Ereignis hat, an dem Sie interessiert sind.
Beispielsweise gibt es ein "resize"Ereignis für das windowObjekt, das sich nicht auf dem documentObjekt befindet.
Beispielsweise befindet sich das "DOMContentLoaded"Ereignis nur auf dem documentObjekt.
Grundsätzlich müssen Sie wissen, welches Objekt das Ereignis empfängt, an dem Sie interessiert sind, und es .addEventListener()für dieses bestimmte Objekt verwenden.
Hier ist ein interessantes Diagramm, das zeigt, welche Objekttypen welche Ereignistypen erstellen: https://developer.mozilla.org/en-US/docs/DOM/DOM_event_reference
Wenn Sie ein weitergegebenes Ereignis (z. B. das Klickereignis) abhören, können Sie dieses Ereignis entweder im Dokumentobjekt oder im Fensterobjekt abhören. Der einzige Hauptunterschied für propagierte Ereignisse besteht im Timing. Das Ereignis trifft das documentObjekt vor dem windowObjekt, da es zuerst in der Hierarchie auftritt. Dieser Unterschied ist jedoch normalerweise unerheblich, sodass Sie beide auswählen können. Ich finde es im Allgemeinen besser, das Objekt auszuwählen, das der Quelle des Ereignisses am nächsten liegt und Ihren Anforderungen bei der Behandlung von propagierten Ereignissen entspricht. Das würde vorschlagen , dass Sie holen documentüber , windowwenn entweder funktioniert. Aber ich bin oft noch näher an die Quelle herangekommen und habe ( document.bodyoder wenn möglich) ein näheres gemeinsames übergeordnetes Element im Dokument verwendet.