如何在JavaScript中使用x,y坐标模拟点击?
2022-08-30 05:19:47
是否可以使用给定的坐标来模拟网页中JavaScript中的单击?
是否可以使用给定的坐标来模拟网页中JavaScript中的单击?
您可以调度点击事件,但这与实际点击不同。例如,它不能用于诱骗跨域iframe文档,使其以为它被点击了。
所有现代浏览器都支持,并且至少从IE 6,Firefox 5开始,任何版本的Chrome以及您可能关心的任何版本的Safari。它甚至可以跟踪链接并提交表单:document.elementFromPoint
HTMLElement.prototype.click()
document.elementFromPoint(x, y).click();
是的,您可以通过创建事件并调度它来模拟鼠标单击:
function click(x,y){
var ev = document.createEvent("MouseEvent");
var el = document.elementFromPoint(x,y);
ev.initMouseEvent(
"click",
true /* bubble */, true /* cancelable */,
window, null,
x, y, 0, 0, /* coordinates */
false, false, false, false, /* modifier keys */
0 /*left*/, null
);
el.dispatchEvent(ev);
}
当心在元素上使用该方法 - 它被广泛实现但不是标准的,并且在例如PhantomJS中会失败。我假设jQuery的实现做了正确的事情,但尚未得到证实。click
.click()