Fireox,如何获取标签对象?

Fireox, how get tabs object?

我尝试获取当前浏览器的标签页window

var tabs = require("sdk/tabs");

并捕获所有新标签

tabs.on('load', function(tab) {
    console.info( tab.url );
});

如果我 运行 jpm 运行 的 firefox,一切正常。但是,如果我构建 xpi 并将其安装到 firefox,那么我会得到其他空 windows 的标签(如果我调用 tabs.open 打开新的 windows)

如何解决?

现在我正在尝试以下 simple example:

var buttons = require('sdk/ui/button/action');
var tabs = require("sdk/tabs");

var button = buttons.ActionButton({
  id: "mozilla-link",
  label: "Visit Mozilla",
  icon: {
    "16": "./icon-16.png",
    "32": "./icon-32.png",
    "64": "./icon-64.png"
  },
  onClick: handleClick
});

function handleClick(state) {
  tabs.open("http://www.mozilla.org/");
}

并且此示例仅在我 运行 "jpm run" 时有效。 如果我构建扩展和简单 运行 firefox(带有插件),则不会创建按钮。

我在想你的xpi 找不到图标,所以你的插件似乎不工作。 这些图标应该在您的 ./data 目录中,此外在您的 package.json 中,最好指定您的 main。您的工作扩展的文件层次结构是:

├--data/
   ├-- icon-16.png
   ├-- icon-32.png
   ├-- icon-64.png
├--lib/
   ├-- main.js   
├--package.json

package.json 看起来像:

{
  "name": "stackexample",
  "title": "stackexample",
  "id": "mail@mail.com",
  "description": "An Whosebug example",
  "author": "mail@mail.com",
  "main": "./lib/main.js",
  "version": "0.0.1"
}

在发出 'ready' 事件后的 firefox 中,与选项卡内容相关的所有属性都可以used.You无法在加载事件中访问选项卡的属性。

Please refer to this link of addon sdk tabs ready event

我找到了答案

如果设置设置历史 "Never remember history" 我遇到了问题

如果设置 "Remember history"问题已经解决

很奇怪,我知道