Rad*_*Hex 88 html javascript jquery mouseevent mouseclick-event
是否可以使用给定的坐标来模拟网页中的JavaScript点击?
And*_*y E 137
您可以发送点击事件,但这与真实点击不同.例如,它不能用于欺骗跨域iframe文档以使其被单击.
所有现代浏览器都支持document.elementFromPoint和HTMLElement.prototype.click(),因为至少IE 6,火狐5浏览器的任何版本,可能Safari浏览器的任何版本,你可能会在乎.它甚至会关注链接并提交表单:
document.elementFromPoint(x, y).click();
Run Code Online (Sandbox Code Playgroud)
https://developer.mozilla.org/En/DOM:document.elementFromPoint https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click
小智 59
是的,您可以通过创建事件并调度它来模拟鼠标单击:
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);
}
Run Code Online (Sandbox Code Playgroud)
小心click在元素上使用该方法 - 它被广泛实现但不是标准的,并且将在例如PhantomJS中失败.我假设jQuery的实现是.click()正确的,但尚未确认.
use*_*021 23
这只是torazaburo的答案,更新为使用MouseEvent对象.
function click(x, y)
{
var ev = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true,
'screenX': x,
'screenY': y
});
var el = document.elementFromPoint(x, y);
el.dispatchEvent(ev);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
104354 次 |
| 最近记录: |