从JavaScript以编程方式触发DOM鼠标事件

时间:2010-08-24 11:51:46

标签: dom javascript-events mouse

是否可以以编程方式在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位于同一个域中。)

2 个答案:

答案 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 中收听。