如果完全移动了鼠标,则不会触发click()函数

时间:2019-01-04 00:48:26

标签: javascript tampermonkey

我正在编写一个小的脚本,该脚本为我使用的Web应用程序启用自定义热键(https://notion.so)。我实质上是在看热键的组合,并使用下面的代码单击特定的元素。

我遇到的问题是,仅当我手动单击页面正文时才触发单击功能。如果我将鼠标移动一点,似乎失去了焦点,因此单击不再起作用。

我正在使用Chrome。

(function() {
    'use strict';

var newButton = '#notion-app > div > div.notion-cursor-listener > div.notion-frame > div.notion-scroller.vertical.horizontal > div:nth-child(2) > div > div > div:nth-child(2) > div:nth-child(6) > div';
var searchButton = '#notion-app > div > div.notion-cursor-listener > div.notion-frame > div.notion-scroller.vertical.horizontal > div:nth-child(2) > div > div > div:nth-child(2) > div:nth-child(4) > div';

window.addEventListener("keydown", keysPressed, false);
window.addEventListener("keyup", keysReleased, false);

var keys = [];

function keysPressed(e) {

// store an entry for every key pressed
keys[e.keyCode] = true;

// Cmd + Alt + N
if (keys[17] && keys[18] && keys[78]) {

    // do something

    document.querySelector(newButton).click();

    // prevent default browser behavior
    e.preventDefault();

}

// Cmd + Alt + S
if (keys[17] && keys[18] && keys[83]) {

    // do something
    document.querySelector(searchButton).click();

    // prevent default browser behavior
    e.preventDefault();

}

}

function keysReleased(e) {
    // mark keys that were released
    keys[e.keyCode] = false;
}

})();

0 个答案:

没有答案