2017-05-10 2 views
0

Ich versuche, einige Iframe-Kommunikation zu implementieren. Ich habe die Brache Seite auf http://parent.com gehostet:Iframe Kind zu Eltern Kommunikation mit mehreren iframe

<html> 
    <iframe id="iframe1" src="http://child.com"/> 
    <iframe id="iframe2" src="http://child.com"/> 
    <iframe id="iframe3" src="http://child.com"/> 
</html> 

Ich versuche, postmessage zu verwenden Kommunikation zwischen iframe1 zu machen und iframe2 möglich, aber ich kann nicht, wie zu finden scheinen. Hier

ist so Code i in dem Kind iframe haben:

var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; 
var eventer = window[eventMethod]; 
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message"; 

eventer(messageEvent, function(event) { 
    event.source.postMessage("somerandomdata", "http://child.com) 
}, false); 

Vielen Dank im Voraus!

Antwort

0

Haben Sie in Betracht gezogen, cross-document messaging zu verwenden?

Elternfenster:

myIframe.contentWindow.postMessage('hello', '*'); 

Kind iframe:

window.onmessage = function(e){ 
    if (e.data == 'hello') { 
     alert('It works!'); 
    } 
}; 
+0

Auch sicher sein, diese Comms für iframe zur Kasse: http: // pbojinov .github.io/iframe-communication/ –

+0

Ich verwende diese Methode bereits für die Eltern-Kind-Kommunikation wie in meinem Beispiel. Was ich nicht herausfinden kann ist, wie man von Kind zu Kind kommuniziert. Ohne dass der Elternteil als Vermittler auftreten muss – user2107970

0

Endlich ist es herauszufinden. Sie müssen sich auf alle Iframe einen Namen haben:

<html> 
    <iframe id="iframe1" name="iframe1" src="http://child.com"/> 
    <iframe id="iframe2" name="iframe2" src="http://child.com"/> 
    <iframe id="iframe3" name="iframe3"src="http://child.com"/> 
</html> 

Dann von einem Kind Rahmen können Sie dies tun:

window.parent.frames["iframe1"] 
Verwandte Themen