我正在尝试在网址上创建一个上下文菜单,以便在另一个标签(http://unvis.it/www.example.com)中修改该网址。我究竟做错了什么?我没有收到任何错误,但新标签也不会打开。
exports.main = function() {
require("sdk/context-menu").Item({
label: "Open with Unvis.it",
context: require("sdk/context-menu").SelectorContext("a[href]"),
contentScript: 'self.on("click", function (node, data) {' +
'require("sdk/tabs").open("http://unvis.it/" + gContextMenu.linkURL);'+
'});',
onMessage: function(msg){},
});
};
答案 0 :(得分:0)
为此,您必须在onMessage函数中打开新选项卡。 首先在click上发送一个带有node.href值的postMessage(选中的url),然后使用tabs.open和参数。
为了更易理解,我使用了两个文件main.js:
var cm = require("sdk/context-menu");
var data = require("sdk/self").data;
cm.Item({
label: "Open with Unvis.it",
context: cm.SelectorContext("a[href]"),
contentScriptFile: data.url('openWithUnvisIt.js'),
onMessage: function(href){
require("sdk/tabs").open("http://unvis.it/" + href);
},
});
'data'文件夹中的openWithUnvisIt.js:
self.on("click", function (node, data) {
self.postMessage(node.href);
});