gpt4 book ai didi

javascript - DOM initMouseEvent clientX, clientY

转载 作者:行者123 更新时间:2023-12-04 00:27:20 29 4
gpt4 key购买 nike

如何在仅传递 X、Y 坐标的 DIV 上模拟 onclick 事件???

如果我尝试做到这一点,显然 dispatchEvent 函数需要将在其上引发事件的对象......但那是什么意思传递事件创建坐标????

谢谢

最佳答案

clientX 和 clientY 参数是相对于处理事件的元素的位置,所以你需要知道点击事件是针对哪个元素的。

如果要根据窗口坐标模拟对未知元素的点击,则需要在该位置找到该元素。在 IE 和 Firefox 3 中,您可以使用 document.elementFromPoint(x, y)。我不知道在其他浏览器中有什么办法,除了遍历页面中的元素,查看它们的位置/大小以确定坐标处的内容。

你的代码看起来像这样:

function simulateClick(x, y) {
var el = getElementFromPoint(x, y);

var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
1, 0, 0,
calculateClientX(el, x), calculateClientY(el, y),
false, false, false, false, 0, null);

el.dispatchEvent(evt);
}

getElementFromPoint 将使用 document.elementFromPoint 或遍历所有元素。 calculateClientX/Y 将计算相对于元素的点击坐标。

关于javascript - DOM initMouseEvent clientX, clientY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/586137/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com