का उपयोग कर दो आईफ्रेम बच्चों के बीच संचार मेरे पास कुछ एम्बेड कोड है जो उपयोगकर्ता अपनी साइट पर डाल सकते हैं। यह पृष्ठ पर दो बच्चों के iframes बनाता है। मैं उन बच्चों को संवाद करने में सक्षम होना चाहता हूं।पोस्ट मैसेज
मैं संदेशों के लिए एक रिले के रूप में जावास्क्रिप्ट की मूल window.postMessage
https://developer.mozilla.org/en-US/docs/DOM/window.postMessage
के बाद से दो iframe बच्चों सीधे संवाद नहीं कर सकते हैं, मैं उपयोग कर रहा हूँ उपयोग कर रहा हूँ। हालांकि माता-पिता एक अलग डोमेन पर हो सकते हैं क्योंकि यह एम्बेड करने योग्य कोड है।
सभी तीन (माता-पिता और उनके दो बच्चे) एक ही डोमेन पर कर रहे हैं, यह बहुत आसान है और मैं इस सुरक्षा जांच e.origin
जाँच के साथ काम किया है मेरी अपनी साइट
# coffeescript
# host = "http://www.mysite.com"
host = "http://localhost"
receive_message = (e) ->
console.log("received message from " + e.origin + ": " + e.data)
return if e.origin != host
if e.data == "show"
...
else if e.data == "hide"
...
window.addEventListener("message", receive_message, false)
क्या एक सुंदर तरीका है उत्पत्ति की जांच करने के लिए जब माता-पिता किसी भी डोमेन पर हो सकते हैं?
स्क्रिप्ट के डिबगिंग की अनुमति देने का एक अच्छा तरीका क्या है जहां मूल लोकहोस्ट हो सकता है?
क्या विनाशकारी/बदलते संदेशों को पारित होने पर डेटा पैराम की जांच करना पर्याप्त है?
धन्यवाद!
वाह - तुम सही हो! विश्वास नहीं कर सकता कि मुझे यह याद आया, मुझे नहीं पता था कि बाल iframes संवाद कर सकते हैं। महान काम किया, मदद के लिए धन्यवाद! –
एनपी, कभी भी। :) –
@IvanZuzak, (iframe1, पैरेंट विंडो और iframe2) अलग-अलग डोमेन पर हैं। अगर मैं iframe2 के कोड में parent.frames [1] .postMessage() का उपयोग करता हूं, तो मैं iframe2 को कैसे आश्वस्त कर सकता हूं। क्योंकि अगर iframe2 लोड नहीं होता है , postMessage() को कॉल करने से त्रुटि – wengeezhang