如何触发从 iframe 到其父元素的点击事件?
Posted
技术标签:
【中文标题】如何触发从 iframe 到其父元素的点击事件?【英文标题】:how to trigger a click event from within an iframe to an element of its parent? 【发布时间】:2012-08-18 06:14:04 【问题描述】:在打开 iframe 之前,我在父页面上尝试了以下代码。
jQuery('iframe').contents().bind('eventhandler', function()
alert('event was fired');
);
我也试过了
jQuery(document).bind('eventhandler', function(e)
alert('event was fired');
);
在 iframe 中,我将此代码嵌入到点击事件中
jQuery(document).trigger('eventhandler');
但它不起作用我在这里做错了吗?
【问题讨论】:
trigger click event in iframe parent window的可能重复 【参考方案1】:如果你可以控制两者的来源,你可以这样做
How to communicate between iframe and the parent site?
【讨论】:
【参考方案2】:您需要从 iframe 中引用父文档。 这应该可以满足您的需求:
index.html:
<iframe src="iframe.html"></iframe>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(function()
$(document).on('eventhandler', function()
alert('event was fired');
);
);
</script>
iframe.html:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(function()
parent.$(parent.document).trigger('eventhandler');
);
</script>
【讨论】:
ye 它的工作thanx!,我希望我不会在使用 IE 或 Chrome 时遇到任何问题,我还没有测试它。仅在火狐上 如果您从服务器(apache 或任何其他)运行它,它应该可以在任何地方运行。唯一的问题是,当 iframe(以及 iframe 内容和 jquery)在父 jquery 之前加载时,不太可能发生,但我假设您没有像我的示例中那样触发事件“onload”:-) 不,它工作得很好。我将第一个事件添加到就绪状态,然后将第二个事件添加到在 iframe 中单击并起作用的按钮上。谢谢 @tborychowski 你拯救了我的一天兄弟.. :) 非常感谢,我在chrome上测试了这个功能,成功了,谢谢以上是关于如何触发从 iframe 到其父元素的点击事件?的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 设备上的 iframe 中未触发 Click/Tap 事件