document
और window
विभिन्न वस्तुओं हैं और वे कुछ अलग घटनाओं की है। का उपयोग करते हुएaddEventListener()
उन पर एक अलग वस्तु के लिए नियत घटनाओं को सुनता है। आपको उस घटना का उपयोग करना चाहिए जो वास्तव में आपके लिए रुचि रखने वाली घटना है।
उदाहरण के लिए, ऑब्जेक्ट "resize"
पर कोई ईवेंट है जो window
ऑब्जेक्ट पर नहीं है document
।
उदाहरण के लिए, "DOMContentLoaded"
घटना केवल document
वस्तु पर है।
तो मूल रूप से, आपको यह जानने की जरूरत है कि उस वस्तु को कौन सी वस्तु प्राप्त है जिसे आप .addEventListener()
उस विशेष वस्तु में रुचि रखते हैं और उपयोग करते हैं।
यहां एक दिलचस्प चार्ट है जो दिखाता है कि किस प्रकार की वस्तुएं किस प्रकार की घटनाएं बनाती हैं: https://developer.mozilla.org/en-US/docs/DOM/DOM_event_reference
यदि आप एक प्रचारित घटना (जैसे कि क्लिक ईवेंट) सुन रहे हैं, तो आप दस्तावेज़ ऑब्जेक्ट या विंडो ऑब्जेक्ट पर उस ईवेंट के लिए सुन सकते हैं। प्रचारित घटनाओं के लिए एकमात्र मुख्य अंतर समय में है। document
ऑब्जेक्ट ऑब्जेक्ट से पहले इवेंट हिट करेगा window
क्योंकि यह पदानुक्रम में पहले होता है, लेकिन यह अंतर आमतौर पर सारहीन होता है ताकि आप या तो चुन सकें। मुझे आमतौर पर घटना के स्रोत के निकटतम वस्तु को चुनना बेहतर लगता है जो प्रचारित घटनाओं को संभालने के दौरान आपकी आवश्यकताओं को पूरा करता है। यही कारण है कि सुझाव है कि आप चुनेंगे document
से अधिक window
है जब या तो काम करेंगे। लेकिन, मैं अक्सर स्रोत के करीब भी जाऊँगा और document.body
दस्तावेज़ में (यदि संभव हो तो) कुछ सामान्य अभिभावकों का उपयोग भी करूँगा ।