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