[英]capture click event on iframe
我试图做类似的事情
<div onClick={()=>{ console.log(captured)}}>
<iframe />
</div>
不管用。 看起来 iframe 不允许这样做。
有什么建议吗?
这是完全正常的; 事件在 dom 树内冒泡,iframe 有它自己的 dom 树,因此不会在它之外冒泡事件。
您的设置如何? 如果您控制 iframe 中的内容,您可以使用发布消息 API 在 iframe 和父级之间进行通信,检查:
https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
如果您不控制它,那么您可能会检测到父 window 上的模糊事件,而不是 iframe 上的点击事件。
希望这可以帮助
无法从父页面读取 iframe 内容 (DOM)。
有一个名为IframeTracker的 jQuery 插件。 这应该可以解决您的问题。 您可以查看 GitHub 页面了解更多详细信息。
如果您有权访问iframe
并对其进行控制,则可以创建一个js
文件并执行以下操作并将其放入iframe
和父 window 中:
(function() {
if (window.location != window.parent.location) {
window.document.addEventListener('click', window.parent.iframe_clicked);
}
})();
function iframe_clicked(event) {
console.log("wow, no kiddin!");
}
当然还有其他方法,例如通过设置服务器和ajax
并通过网络进行此操作,它们也有自己的用途。
还有postMessage
,其他人已经提到过,所以我将跳过解释它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.