无法将热键功能添加到firefox插件中

Unable to add Hotkey functionality to firefox addon

本文关键字:firefox 插件 添加 功能      更新时间:2023-09-26

我使用了一个现有的插件,它在谷歌上搜索给定的单词。以下是链接:https://addons.mozilla.org/en-US/firefox/addon/inline-google-search/?src=api

Addon的工作原理是选择文本,然后右键单击它,在上下文菜单中可以选择在谷歌上搜索。

以下是主要的js文件:

exports.main = function() {};
var panel = require("sdk/panel").Panel({
  width:700,
  height: 500,
  contentURL: "about:blank",
  onHide : function(){
      this.contentURL  = "about:blank"
  }
});
var contextMenu = require("sdk/context-menu");
 var menuItem = contextMenu.Item({
  label: "Search Google Inline",
  context: contextMenu.SelectionContext(),
  contentScript: 'self.on("click", function () {' +
                 '  var text = window.getSelection().toString();' +
                 '  self.postMessage(text);' +
                 '});',
  onMessage: function (selectionText) {
    panel.contentURL = "https://www.google.co.in/search?q="+selectionText;
    panel.show();
  }
});

我添加了一些功能,这样在选择文本并按Ctrl+Shift+d后,就可以在谷歌上搜索文本了。

我在结尾添加了几行额外的行:

var { Hotkey } = require("sdk/hotkeys");
var selection = require("sdk/selection");
var showHotKey = Hotkey({
    combo: "accel-shift-d",
    onPress: function() {
        panel.contentURL = "https://www.google.co.in/search?q="+selection.text;
        panel.show();
    }
});

我在这里找到了上面的片段:访问热键对象中的选定文本

还有一个文件harness-options.json,我在其中更新了main.js文件的sha256 sum,并在manifest部分添加了需求sdk/hotkeys和sdk/selection。

但是插件在安装后无法工作。甚至上下文菜单选项也不再出现。看来我破坏了密码。

我可能做错了什么?

我没有编辑插件,而是使用cfx和插件sdk从头开始创建它,它很有效。