2012-03-28 12 views
58

जब मैं jQuery घटना श्रोता का उपयोग संदेश घटना को संभालने के लिए नीचे दिए:jQuery पोस्टमेसेज ईवेंट का समर्थन नहीं करता है?

$(window).on('message', function(e) { 
    var data = e.data; // data = undefined 
}); 

डेटा अपरिभाषित है! मुझे यकीन है कि मैंने वर्तमान विंडो में डेटा पास कर दिया है। क्योंकि अगर मैं "addEventListener" का उपयोग करता हूं, तो सब कुछ ठीक हो जाता है!

तो, समस्या क्या है?

उत्तर

98

jQuery घटना की data संपत्ति प्रीप्रोसेसिंग कर रहा है, और यह ऑपरेशन message ईवेंट (अभी तक) का उचित समर्थन नहीं कर सकता है।

आपका डेटा प्राप्त करने के लिए originalEvent संपत्ति का उपयोग कर प्रयास करें:

$(window).on("message", function(e) { 
    var data = e.originalEvent.data; // Should work. 
}); 
+0

यह सहायक है, बहुत बहुत धन्यवाद। – stefan

+2

आपके लिए एक +1, इससे मुझे अपने बालों को खींचने में मदद मिली। – ceejayoz

+1

आईई में "ऑनमेसेज" को संभालने का सबसे अच्छा तरीका क्या है? – grim

11

कुछ ब्राउज़र "onmessage" घटना का उपयोग करें। मैं बढ़ी संगतता के पिछले जवाब में थोड़ा सुधार सुझाता हूं:

$(window).on("message onmessage", function(e) { 
    var data = e.originalEvent.data; 
}); 
संबंधित मुद्दे