在Mozilla Add On SDK中打开一个选项卡

Ton*_*ony 5 javascript firefox-addon firefox-addon-sdk

我正在开发一个Mozilla Add on.我正在尝试打开一个标签.

根据https://addons.mozilla.org/en-US/developers/docs/sdk/1.0/packages/addon-kit/docs/tabs.html, 它使用完成

console.log("before tab");
var tabs = require("tabs");
tabs.open("http://www.example.com");
Run Code Online (Sandbox Code Playgroud)

但这不符合我的情况.

我在内容脚本中这样做.我有一个名为popup.html的页面和一个名为popup_script.js的内容.

到达代码是因为记录了消息.

任何的想法?

Wla*_*ant 6

内容脚本无法访问"高级"API,它们只能与扩展程序通信.因此,您的内容脚本应该向扩展程序发送消息,然后扩展程序应该打开选项卡.像这样:

self.port.emit("openTab", "http://www.example.com");
Run Code Online (Sandbox Code Playgroud)

并在main.js:

panel.port.on("openTab", function(url)
{
  var tabs = require("tabs");
  tabs.open(url);
});
Run Code Online (Sandbox Code Playgroud)