मैं एक तुच्छ postMessage
उदाहरण काम करने की कोशिश कर रहा हूँ ...
- IE10 में
- खिड़कियों के बीच / टैब (बनाम iframes)
- मूल के पार
इन स्थितियों में से किसी एक को निकालें, और चीजें ठीक काम करती हैं :-)
लेकिन जहां तक मैं बता सकता हूं, बीच-विंडो postMessage
केवल IE10 में काम करने के लिए प्रकट होती है जब दोनों विंडोज़ एक मूल साझा करते हैं। (ठीक है, वास्तव में - और अजीब तरह से - व्यवहार उस से थोड़ा अधिक अनुज्ञेय है: दो अलग-अलग मूल जो एक मेजबान को साझा करते हैं, काम भी लगते हैं)।
क्या यह एक दस्तावेज बग है? कोई वर्कअराउंड या अन्य सलाह?
(नोट: यह प्रश्न मुद्दों पर छूता है, लेकिन इसका उत्तर IE8 और IE9 के बारे में है - 10 नहीं)
अधिक विवरण + उदाहरण ...
लॉन्चर पेज डेमो
<!DOCTYPE html>
<html>
<script>
window.addEventListener("message", function(e){
console.log("Received message: ", e);
}, false);
</script>
<button onclick="window.open('http://jsbin.com/ameguj/1');">
Open new window
</button>
</html>
पृष्ठ का डेमो शुरू किया
<!DOCTYPE html>
<html>
<script>
window.opener.postMessage("Ahoy!", "*");
</script>
</html>
यह काम करता है: http://jsbin.com/ahuzir/1 - क्योंकि दोनों पृष्ठ एक ही मूल (jsbin.com) पर होस्ट किए गए हैं। लेकिन दूसरे पृष्ठ को कहीं और ले जाएं, और यह IE10 में विफल रहता है।
window.parent.postMessage
IE में उपयोग कर सकते हैं ।