Simulate click at x/y coordinates using javascript

2019-02-07 08:13发布

How can I simulate a click at x/y co-ordinates using javascript or jquery?

I will use the script multiple times and I want the script to click on postion one then postion two then three then four and so one.

It is better without moving the mouse cursor, but if it has to move then that is fine as well.

2条回答
地球回转人心会变
2楼-- · 2019-02-07 08:39

This can actually be accomplished with the document.elementFromPoint method. A jQuery example:

function simulateClick(x, y) {
    jQuery(document.elementFromPoint(x, y)).click();
}
simulateClick(100, 250);
simulateClick(400, 250);

Edit: Here is a working example: http://jsfiddle.net/z5YjY/

查看更多
Emotional °昔
3楼-- · 2019-02-07 08:46

On a second take, I'd share my experiences, and update Prestaul's answer.

In most cases, you don't just want to click on an element to induce the 'onclick' event, but you would like to use the click info for something (eg.: move a slider there, or put a popup at that exact place).

I'm mostly using vanilla js, but it blends well with $.

function simulateClick(x, y) {
    var clickEvent= document.createEvent('MouseEvents');
    clickEvent.initMouseEvent(
    'click', true, true, window, 0,
    0, 0, x, y, false, false,
    false, false, 0, null
    );
    document.elementFromPoint(x, y).dispatchEvent(clickEvent);
}

Basically this will pass down the correct pageX / pageY through the event, for further use.

I have updated the fiddle as well, to show a use of these coords: http://jsfiddle.net/V4CdC/

查看更多
登录 后发表回答