我正在编写一个小的脚本,该脚本为我使用的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;
}
})();