2016-07-19 7 views
0

Ich versuche, einen Benutzernamen zu lesen, der iframe außerhalb ist. Wie kann ich den übergeordneten Wert iframe auf der Schaltfläche innerhalb iframe klicken?Jquery lesen Elternwert von iframe

Here is my fiddle

<span id="user"> 
My Name 
</span> 

<iframe id="my-iframe" height=200 width=300> 
<input type="button" id="myButton" value="click"> 
</iframe> 

$('#myButton').click(function(){ 
var userName = $('#user').text(); 
alert(userName); 
}); 

Antwort

1

war mir nicht bewusst, dass Sie einen iFrame ohne eine Quelle haben könnte, but apparently you can. Ich bin nicht sicher, warum Sie das tun, aber es scheint, dass Sie in den iFrame selbst schreiben müssen, anstatt die Elemente darin zu verschachteln. Zum Beispiel:

var iframe = $("#my-iframe")[0].contentWindow.document; 

$("body", iframe).html("<input type=\"button\" id=\"myButton\" value=\"click\">"); 

Beachten Sie, dass Sie nur den Inhalt eines iFrame zugreifen können, wenn die Eltern und Kind auf dem same domain and protocol sind. Ich schätze ein iFrame "Literal" wie in Ihrem Fall wird als der gleiche Ursprung gezählt.

Da Ihre Klickbindung im übergeordneten Fenster ausgeführt wird, wird nur nach Elementen im übergeordneten Dokument gesucht. Sie müssen Ihre Wähler zwicken, damit es die iframe Dokument sucht statt:

var iframe = $("#my-iframe")[0].contentWindow.document; 

$("#myButton", iframe).click(function(){ 
    var userName = $("#user").text(); 
    alert(userName); 
}); 

gleichen Ursprungs Politik sowie auf die oben gilt.

Volle Geige here.