[英]Firing DOM mouse events programmatically from JavaScript
是否可以在 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>
每當用戶在iframe
單擊div
,我也想以某種方式將事件傳播到iframe
。 (這里我們假設iframe src
在同一個域中。)
雖然您可以將事件注入瀏覽器的事件處理系統(以不完全可移植的方式),但它只會導致在這些事件上注冊的事件處理程序被調用。 它不會導致諸如點擊鏈接之類的默認操作。 此外,您不會從坐標中為您計算出目標元素,因此您必須自己做。
更好的選擇是去掉模糊的<div>
並在 iframe 的文檔上注冊一個click
處理程序,然后通知父級中的代碼點擊的位置。
如果您曾經遇到過<iframe>
的父項和子項位於不同域的情況,我建議您學習使用postMessage()
。
使用postMessage()
您可以像這樣收聽"message"
事件:
window.addEventListener("message", (event) => {}
https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
我想添加這個,因為不久前,我很難找到最好的方法。 此外, postMessage()
在某些情況下很有用,當您想控制事物時,您想在 iframe 中收聽。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.