【发布时间】:2020-03-12 04:53:51
【问题描述】:
我正在开发视频播放器。该播放器在客户端页面的 iframe 中使用,因此它是跨域的。当用户单击搜索栏并将光标拖出 iframe 时,我无法识别 mouseup 事件,因此它保持选中状态。我注意到 youtube 播放器可以做到这一点,并且可以识别 iframe 之外的光标事件。我怎么能用javascript来做到这一点?
【问题讨论】:
-
我不确定您的问题是因为跨域 iframe。我刚刚做了一个小测试,我在 netlify 上托管了一个页面并将其嵌入到本地开发服务器上的 iframe 中,我能够单击,然后在按住鼠标按钮的同时将其移出框架,释放并采取行动那个 mouseup 事件。你能发布你的事件处理代码吗?
-
有一种方法可以解决这个问题,使用 document.parent 并在那里添加 eventListener,但它在跨域中不起作用。以下代码是如果 mousedown 在 iframe 内开始并且 mouseup 在 iframe 之外发生时不起作用的代码示例。
document.addEventListener('mouseup', (e) => { console.log(e); });
标签: javascript iframe cross-domain dom-events