मैं easyXDM उपयोग करने के लिए मूल दस्तावेज़ और बच्चे iframe के बीच संवाद की कोशिश कर रहा हूँ से लोड के बीच संवाद की easyXDM का उपयोग करना (- अमेज़न एक अलग डोमेन से भरी हुई)। iframe src एक OAuth हस्ताक्षर किए यूआरएल है और माता पिता के दस्तावेज है कि लोड के साथ संवाद करने के लिए निम्न कोड है:मूल दस्तावेज़ और बच्चे iframe एक अलग डोमेन (अमेज़न)
socket = new easyXDM.Socket({
remote: "http://localhost:56789/hitch.html", /* parent document */
remoteHelper: "http://localhost:56789/easyXDM/name.html",
onMessage: function(message, origin){
alert("Received '" + message + "' from '" + origin + "'");
},
onReady: function() {
socket.postMessage("Yay, it works!");
}
});
ऊपर कोड दस्तावेज़ के सिर हिस्से में रखा है।
माता-पिता में (hitch.html):
var transport = new easyXDM.Socket(/** The configuration */{
local: "/easyXDM/name.html",
swf: "/easyXDM/easyxdm.swf",
onMessage: function(message, origin){
transport.postMessage("This is a message received from " + location);
}
});
जब मैं मूल दस्तावेज़ के अंदर amazonS3 से बच्चे iframe लोड, easyXDM src को "http सेट के साथ बच्चे iframe के भीतर एक और iframe पैदा कर रही है: // लोकलहोस्ट: 5678 9/hitch.html? xdm_e = ... "। इससे चक्र में पूरी चीज दोहराई जा सकती है - माता-पिता फिर से बच्चे आईफ्रेम लोड करने की कोशिश कर रहे हैं।
मैं फ़ायरफ़ॉक्स 9.0 पर परीक्षण कर रहा हूं जिसमें पोस्ट मैसेज समर्थन है। वास्तविक संदेश ठीक से भेजे जा रहे हैं और मैं संदेश बॉक्स देख सकता हूं। जब easyXDM.socket आरंभ लेकिन यह बिल्कुल भी प्रभावित नहीं लगता है इस के अलावा, यह भी मूल दस्तावेज़ में एक "यूआरएल अपरिभाषित है या खाली है" त्रुटि फेंकता है ...
धन्यवाद,
मैं एक ही confusion.Have आप इस समस्या का समाधान है? – xiaohan2012
nope :(। मुझे पोस्टमेसेज के आस-पास एक और सरल रैपर मिला जो पुराने ब्राउज़र के लिए स्थान हैश और नए ब्राउज़र के लिए पोस्टमेसेज का उपयोग करता है। एक अतिरिक्त लाभ के रूप में, कोड easyXDM भूलभुलैया के विपरीत छोटे और आसानी से समझने योग्य है। कोड यहां है: http://www.onlineaspect.com/2010/01/15/backwards-compatible-postmessage/ – ivymike