Javascript 如何模拟长时间鼠标左键单击

Javascript 如何模拟长时间鼠标左键单击,javascript,jquery,Javascript,Jquery,我正在做一个jquery脚本,当我不在电脑前时,它可以帮助我做一些事情。有点像机器人 此bot必须在页面的特定X、Y点上执行一些左键单击 我使用这段代码,效果非常好: document.elementFromPoint(X,Y).click() 但我还需要在页面的另一点上长时间单击。 我需要模拟一下: 按左键单击(x,y)。。。等3秒钟。。。释放左键单击 有没有办法做到这一点 多谢各位 使用纯JavaScript,这可能是不可能的。至少不是在所有情况下 但是,如果目标元素正在使用mousedow

我正在做一个jquery脚本,当我不在电脑前时,它可以帮助我做一些事情。有点像机器人

此bot必须在页面的特定X、Y点上执行一些左键单击

我使用这段代码,效果非常好: document.elementFromPoint(X,Y).click()

但我还需要在页面的另一点上长时间单击。 我需要模拟一下: 按左键单击(x,y)。。。等3秒钟。。。释放左键单击

有没有办法做到这一点


多谢各位

使用纯JavaScript,这可能是不可能的。至少不是在所有情况下

但是,如果目标元素正在使用
mousedown
mouseup
检测此“长时间鼠标点击”,则可能会直接触发它们:

document.elementFromPoint(X, Y).mousedown();

setTimeout(() => document.elementFromPoint(X, Y).mouseup(), 3000);

正如我所说,它不会在所有情况下都起作用,因为您实际上并不是在控制鼠标本身,但应该让您在某些情况下模拟它。

鼠标向下
鼠标向下
之间放置一个超时侦听器

不是最好的代码,但您可以执行以下操作:

function listenForLongClick (domElement, timeout = 3000) {
    let mouseDownStarted = false;
    let timeoutCheck = null;
    domElement.addEventListener('mousedown', () => {
        mouseDownStarted = true;

        timeoutCheck = setTimeout(() => mouseDownStarted = false, timeout);
    }, false);
    domElement.addEventListener('mouseup', () => {
        clearTimeout(timeoutCheck);

        if (mouseDownStarted) { console.log('within the 3 seconds'); }

        mouseDownStarted = false;
    }, false);
}