Jquery从iframe读取父值

时间:2016-07-19 19:00:25

标签: javascript jquery html iframe

我正在尝试读取iframe外的用户名。如何在iframe内点击按钮时获取父值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);
});

1 个答案:

答案 0 :(得分:1)

我不知道你可以拥有一个没有来源的iFrame,but apparently you can。我不确定你为什么要这样做,但似乎你必须写入iFrame本身而不是将元素嵌套在里面。例如:

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

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

请注意,如果父级和子级位于same domain and protocol,您只能访问iFrame的内容。我猜一个iFrame&#34;字面意思&#34;在你的情况下被视为同一来源。

此外,由于您的点击装订是在父窗口中运行的,因此它只搜索父文档中的元素。您必须调整您的选择器,以便它搜索iframe文档:

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

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

同样的原产地政策也适用于上述政策。

完整小提琴here