javascript - window.postMessage behaves abnormal on Chrome extension -


मैं क्रोम एक्सटेंशन सामग्री स्क्रिप्ट में window.postMessage का उपयोग करता हूं:

  फ़ंक्शन () {विंडो .addEventListener ("संदेश", फ़ंक्शन (ईवेंट) {console.log (ईवेंट);}, झूठी); Window.postMessage ({प्रकार: \ "FROM_PAGE \"}, "*")}}   

असामान्य व्यवहार यह है कि पहली बार मैं इस फ़ंक्शन को कॉल करता हूं, एक बार सांत्वना प्रिंट ईवेंट; दूसरी बार मैं कॉल करता हूँ, कंसोल प्रिंट दो बार; तीसरी बार, तीन बार।
मेरे कोड में क्या गलत है?

ऐसा इसलिए है क्योंकि आप नया ईवेंट लिस्टनर प्रत्येक समय को जोड़ने से आप फ़ंक्शन कॉल कर सकते हैं।

इस प्रकार आपके द्वारा जोड़े गए सभी EventListener को पोस्ट किया गया संदेश पोस्टमेस और फिर करता है

console.log (इवेंट)

इसलिए पहली बार जब आप कॉल करते हैं फ़ंक्शन। आप EventListeners फ़ंक्शन को केवल एक बार निष्पादित कर लेते हैं क्योंकि केवल 1 EventListener उस DOM से जुड़ा हुआ है जो कॉल करता है console.log

दूसरी बार दो EventListeners चलाना है console.log और इसी तरह ...

आपको संलग्न करना चाहिए आप EventListener

  window.addEventListener ("संदेश", फ़ंक्शन (ईवेंट) {...}   

अपने फ़ंक्शन के बाहर .और केवल window.postMessage ({प्रकार: \ "FROM_PAGE \"}, "*") करें; फ़ंक्शन के अंदर का हिस्सा

Comments

Popular posts from this blog

excel vba - How to delete Solver(SOLVER.XLAM) code -

github - Teamcity & Git - PR merge builds - anyway to get HEAD commit hash? -

ios - Replace text in UITextView run slowly -