पोस्ट मैसेज() फ़ंक्शन असीमित है, जिसका अर्थ है कि यह तुरंत वापस आ जाएगा। तो आप इसके साथ तुल्यकालिक संचार नहीं कर सकते हैं।
आपके उदाहरण में, पोस्ट किया गया संदेश शून्य में गायब हो जाएगा, क्योंकि पोस्ट मैसेज() फ़ंक्शन निष्पादित होने पर संदेश ईवेंट के लिए कोई श्रोता नहीं है।
यदि आप पहले आईफ्रेम लोड करेंगे और पोस्टमेसेज() को बाद में कॉल करेंगे, तो शायद एक समय समस्या हो सकती है। (मेरे अनुभव से कोई नहीं है, पैरेंट कोड हमेशा पहले निष्पादित होता है, लेकिन मुझे इस बिंदु के बारे में निश्चित नहीं है।)
नीचे यह जानने के लिए मेरा समाधान है कि आईफ्रेम तैयार होने पर बिल्कुल सही नहीं है।
माता पिता विंडो में:
- लोड iframe (इस अतुल्यकालिक है, भी)
- आइफ्रेम (बस यहाँ की कोशिश कर रहा)
- -
- पोस्ट संदेश सेट करें संदेश श्रोता
ifram में आने के लिए अधिक संदेश प्रतीक्षा करें ई:
- सेट करें संदेश श्रोता
माता पिता खिड़की (सिर्फ यहां की कोशिश कर रहा) और संदेश के लिए
- इंतजार करना
- पोस्ट संदेश आने के लिए
जो कोई भी एक दूसरे से पहले संदेश प्राप्त करता है पक्ष तो असली संचार शुरू करता है।
मेरे अनुभव में, माता-पिता से आईफ्रेम का संदेश हमेशा खो जाता है, इसलिए संचार शुरू होता है जब माता-पिता को आईफ्रेम से संदेश प्राप्त होता है। लेकिन इस सेटअप में यह महत्वपूर्ण नहीं है कि कोई पहले शुरू होता है।