Javascript 在iframe上捕获单击事件
我想做一些类似的事情Javascript 在iframe上捕获单击事件,javascript,reactjs,events,Javascript,Reactjs,Events,我想做一些类似的事情 <div onClick={()=>{ console.log(captured)}}> <iframe /> </div> {console.log(已捕获)}> 它不起作用。看起来iframe不允许这样做 有什么建议吗?这是完全正常的;事件在dom树中冒泡,iframe有自己的dom树,因此不会在它之外冒泡事件 您的设置看起来如何? 如果控制iframe内部的内容,则可以使用post消息API在iframe和父级之间进行
<div onClick={()=>{ console.log(captured)}}>
<iframe />
</div>
{console.log(已捕获)}>
它不起作用。看起来iframe不允许这样做
有什么建议吗?这是完全正常的;事件在dom树中冒泡,iframe有自己的dom树,因此不会在它之外冒泡事件 您的设置看起来如何? 如果控制iframe内部的内容,则可以使用post消息API在iframe和父级之间进行通信,请选中: 如果不进行控制,则可能会在父窗口上检测到模糊事件,而不是iframe上的单击事件
希望这有帮助无法从父页面读取iframe内容(DOM)
有一个jQuery插件叫做。这应该能解决你的问题。您可以查看GitHub页面以了解更多详细信息。如果您有权访问并控制
iframe
,您可以创建一个js
文件并执行类似操作,然后将其放在iframe
和父窗口中:
(函数(){
if(window.location!=window.parent.location){
window.document.addEventListener('click',window.parent.iframe\u clicked);
}
})();
函数iframe_单击(事件){
日志(“哇,别开玩笑了!”);
}
当然,还有其他一些方法,比如通过设置服务器和ajax
,也可以通过网络实现,它们有自己的用途
还有
postMessage
,其他人已经提到了,所以我不想解释了。这是正常的js还是react@prasanth反应