繁体   English   中英

如何模拟长鼠标左键单击

[英]How to simulate a long mouse left click

我正在做一个小jquery脚本,当我不在我的电脑上时帮助我做一些事情。 像机器人一样的东西。

此机器人必须执行一些左键单击页面的特定X,Y点。

我使用这段代码并且工作得很好:document.elementFromPoint(X,Y).click();

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

有没有办法做那样的事情?

谢谢。

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

但是,如果您要定位的元素使用mousedownmouseup来检测此“长鼠标单击”,那么您可以直接触发它们:

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

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

就像我说的那样,在所有情况下都不会起作用,因为你实际上并没有控制鼠标本身,而应该让你在某些模拟它。

mousedownmouseup之间放置一个超时监听器

不是最好的代码,但你可以做这样的事情:

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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM