我拿了一个现有的插件来搜索google上的给定单词 . 这是链接: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后,将对Google上的文本执行搜索 .
最后我添加的额外线条很少:
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();
}
});
我从这里找到上面的片段:Access selected text within a Hotkey object
还有一个文件harness-options.json,其中我更新了main.js文件的sha256和,并在清单部分添加了要求sdk / hotkeys和sdk / selection .
但安装后插件无法正常工作 . 甚至上下文菜单选项也不再出现 . 所以我似乎打破了代码 .
我可能做错了什么?
1 回答
我没有编辑插件,而是使用cfx和addon-sdk从头开始创建它,它起作用了 .