2016-12-06 2 views
1

Ich habe ein Problem, das von meinem Elternfenster zum Kind-iFrame kommuniziert. Auf der anderen Seite funktioniert alles perfekt. Hier ist, wie ich die chil iFrame Objekt erhalten, um die postmessage Funktion Feuer:Kommunikation mit postMessage von Eltern zu Kind ausgeben iFrame

var iFrame = document.getElementById('Frame').contentWindow; 

Wenn ich es drucken int er trösten, erhalte ich folgendes:

Window {parent: Window, opener: null, top: Window, length: 0, frames: Window…} 

Wenn Ich gehe zur postMessage-Funktion wie folgt:

iFrame.postMessage("message", "http://contoso.com"); 

Es zeigt mir ein Fehler r beim Laden der Seite: iFrame.postMessage ist keine Funktion. Wenn ich die Konsole ausführen in postmessage, erhalte ich eine undefined

Was mache ich falsch?

+0

Sie müssen immer noch die Kontrolle über beide Websites haben. Besitzt du 'contoso.com'? – zer00ne

+0

Sie müssen e.origin auf 'contoso.com' einrichten, sind Sie sicher, dass Sie diese Seite bearbeiten können? Als ich das letzte Mal nachgesehen habe, war es immer noch in Besitz von MS. – zer00ne

+0

Ich habe meine Website durch contoso.com nur für die Post ersetzt. In dem Ereignis-Listener in dem untergeordneten iFrame ist das e.origin korrekt eingestellt. Ich habe Protokoll hinzugefügt, kurz bevor das Ereignisobjekt manipuliert wurde, aber es kommt nie an diesen Punkt. –

Antwort

1

Unten Code funktioniert auch.

$('#id')[0].contentWindow.postMessage("hello world",targetOrigin);

Es gibt einen Unterschied zwischen jQuery-Selektor und document.getElementById.

Document.getElementByID gibt HTML-DOM-Objekt zurück.
Der jQuery-Selektor gibt das jQuery-Objekt zurück.

Für weitere Informationen finden Sie unter dem folgenden Link. document.getElementById vs jQuery $()

Verwandte Themen