【问题标题】:firefox extensions - detect if button pressed with shiftfirefox 扩展 - 检测按钮是否按下 shift
【发布时间】:2017-02-02 14:58:27
【问题描述】:

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

我的想法是,当按下插件图标时,可以通过按住 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)

任何想法,我可以输入&lt;shift pressed&gt;

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

【问题讨论】:

    标签: javascript firefox firefox-addon shift


    【解决方案1】:

    尝试使用此代码:

    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

    【讨论】:

    • 看来代码执行到晚了。它总是调用funcB()。你说,我应该把那个代码放到右上角的background.js
    • 这是一种捕获按键的方法;我不知道你会把它放在什么地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    相关资源
    最近更新 更多