是否可以以编程方式在DOM中触发鼠标事件?我的示例案例如下:
<html>
<body>
<iframe style="width: 500px; height: 500px;" src="something.html"></iframe>
<div id="layer" style="position: absolute; left: 0px; top=0px; width=500px; height=500px;"></div>
</body>
</html>
每当用户点击div
iframe
时,我想以某种方式将事件传播到iframe
。 (这里我们假设iframe src
位于同一个域中。)
答案 0 :(得分:2)
虽然可以将事件注入浏览器的事件处理系统(以非完全可移植的方式),但它只会导致在这些事件上注册的事件处理程序被调用。它不会导致跟随点击链接等默认操作。你也没有从坐标中得到目标元素,所以你必须自己做。
更好的选择是丢失模糊的<div>
并在iframe的文档上注册click
处理程序,然后通知父网站中点击位置的代码。
答案 1 :(得分:0)
如果您遇到过 <iframe>
的父母和孩子在不同领域的情况,我建议您学习使用 postMessage()
。
使用 postMessage()
,您可以像这样监听"message"
事件:
window.addEventListener("message", (event) => {}
https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
我想添加这个,因为不久前,我很难找到最好的方法。此外,postMessage()
在某些情况下很有用,当您想控制事物时,您想在 iframe 中收听。