如何在iframe中的点击事件中获取元素的ID?

时间:2014-11-24 00:04:35

标签: javascript jquery html5

<iframe id="myiframe" src="doc.html">
    <button id="btn1"></button><!-- how to get this id? -->
</iframe>
$('#myiframe').on('click', function () {
    alert(this.id);
});

我希望它提醒&#34; btn1&#34;。

3 个答案:

答案 0 :(得分:0)

没有。出于安全原因,无法执行此操作。

在iframe和当前页面之间进行通信的唯一方法是iframe中的url已包含一些javascript并更新iframe网址。 iframe然后将一些数据放入页面可以检索的URL中。

如果iframe的目标不属于你,那就不可能了。

答案 1 :(得分:0)

请参阅jQuery cross domain iframe scripting了解可能使其工作的复杂解决方法。

不建议这样做;最好的方法是重新架构文档并尝试解决不同的问题。例如,您可以通过ajax调用请求远程内容并将其插入到文档中。

例如,使用jQuery.load

$(".target-element").load("doc.html", null, function() {
    var id = $(".target-element").find("#btn").attr("id");
});

答案 2 :(得分:-1)

this.id不是有效的我认为,从技术上来说也会选择错误的ID(#myIframe)

您需要this.children().attr('id');

之类的内容