javascript - firefox 扩展 - 检测按钮是否按下 shift

标签 javascript firefox firefox-addon shift

我正在尝试编写一个具有两个功能的浏览器插件。我不需要任何输入,我只需要调用一个函数。

我的想法是,可以通过在按下插件图标时按住 shift 或不按住来访问该功能。 (ctrl 也可以完成这项工作)

问题是,firefox 没有给我一个事件,所以我不能使用 event.shiftKey . firefox 唯一给我的是当前选项卡,它不包含该信息。这是我到目前为止得到的:

// manifest.json
{

  "manifest_version": 2,
  "name": "Link List",
  "version": "1.0",

  "background": {
    "scripts": [ "background.js" ]
  }

  "browser_action": {

  }
}


// background.js
function openPage(tab) {
  if(<shift pressed>) {
    funcA();
  } else {
    funcB();
  }
}

browser.browserAction.onClicked.addListener(openPage)

有什么想法,我可以写进<shift pressed>

我不是母语人士,如果我有语法/拼写错误请指正

最佳答案

尝试使用这段代码:

var keys = [];
document.onkeydown = function(e){keys[e.keyCode]=true;};
document.onkeyup = function(e){keys[e.keyCode]=false;};

...在您的分机中。一旦您的扩展程序在每个新页面上运行,就立即部署它。 在您的 if 语句中,您可以将 if(keys[16]) 用于 shift,或将 if(keys[17]) 用于 ctrl.

关于javascript - firefox 扩展 - 检测按钮是否按下 shift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42005458/

相关文章:

javascript - Momentjs 不适用于 Firefox 28.0

javascript - React Native - FlatList 排序而不排序数据

javascript - Chrome : Tainted canvases may not be exported; Offline-only app

javascript - 如何绕过 Firefox 扩展 "server does not support RFC 5746"中的以下错误

javascript - iOS 上的 Safari 在页面底部加载 JavaScript 之前等待 10-30 秒

javascript - Java 流类似于 JavaScript 数组吗?

python - selenium.common.exceptions.SessionNotCreatedException : Message: Unable to find a matching set of capabilities with GeckoDriver, Selenium 和 Firefox

javascript - 使用 Windows 身份验证的 XMLHttpRequest SOAP 请求

javascript - Firefox 书签探索不会超过 Javascript 的第一级

javascript - 错误 : Can't access lexical declaration