मैं एक आईफ्रेम और मेरी मुख्य वेबसाइट के बीच संवाद करने के लिए postMessage()
प्राप्त करने का प्रयास कर रहा हूं। हालांकि MDN पर example code में दिए गए सटीक वाक्यविन्यास का उपयोग करके, मुझे Undefined is not a function
त्रुटि के साथ प्रस्तुत किया जा रहा है। मैंने कई चीजों की कोशिश की है, जैसे जावास्क्रिप्ट के अंदर आईफ्रेम शुरू करना और इसे मेरे पृष्ठ पर जोड़ना, लेकिन यह मुझे एक ही त्रुटि के साथ छोड़ दिया। मेरे आईफ्रेम का चयन करने के लिए अलग चयनकर्ताओं के लिए समान है।postMessage() त्रुटि उत्पन्न करता है "अपरिभाषित कोई फ़ंक्शन नहीं है"
मैं निम्नलिखित जावास्क्रिप्ट कोड है:
<script type="text/javascript">
$(document).ready(function() {
$('.editor').postMessage("A", "domain here");
});
function receiveMessage(event)
{
if (event.origin !== "domain here")
return;
// Do something
}
window.addEventListener("message", receiveMessage, false);
</script>
स्क्रिप्ट ऊपर पेज पर अपने iframe, जिसे लगता है कि करने के लिए एक संदेश भेजने की कोशिश करता है:
<iframe src="domain here/frameListener.html" class="editor"></iframe>
यह तो एक समारोह है receiveMessage
किसी भी संदेश को मुख्य वेबपृष्ठ के जवाब के रूप में भेजने के लिए पकड़ने के लिए। अंतिम लेकिन कम से कम नहीं, मैंने this question में दिए गए उत्तरों का प्रयास किया है: लेकिन इससे मेरी समस्या ठीक नहीं हुई। इसलिए यह एक डुप्लिकेट नहीं है।
मैं इस त्रुटि संदेश से कैसे छुटकारा पा सकता हूं?
$('.editor').get(0).contentWindow.postMessage("A", "domain here");
इसके अलावा, आप iframe
की contentWindow
संपत्ति का उपयोग करने की जरूरत है:
'' postMessage' Window' वस्तु की एक विधि है, जबकि '$ ('। संपादक')' एक jQuery वस्तु – hindmost
@hindmost धन्यवाद, मैं Jivings जवाब में दिए गए उदाहरण के लिए अपने कोड बदल दिया है है, हालांकि उसने मेरी समस्या को ठीक नहीं किया। –