查找当前选项卡的URL.制作FireFox浏览器插件

Wil*_*nes 13 firefox firefox-addon firefox-addon-sdk

我正在制作Firefox浏览器插件,需要找到当前标签的网址

我试过这篇文章从Firefox扩展中打开当前标签/窗口中的URL,但它告诉我'窗口'没有定义.(我想是因为我正在制作插件而不是扩展插件.)

这是我试图做的事情:

var widgets = require('widget');
var tabs = require('tabs');

var widget1 = widgets.Widget({
  id: "widget1",
  label: "widget1",
  contentURL: "http://www.mozilla.org/favicon",
  onClick: function() {
    console.log(tabs.url);
  }
})
Run Code Online (Sandbox Code Playgroud)

我制作了一个小部件,当我点击它时,当前标签的url应为'console.log'ed.

似乎没有发生!继续获取"info:undefined",这显然意味着tabs.url没有返回任何内容.但这似乎是根据https://addons.mozilla.org/en-US/developers/docs/sdk/1.5/packages/addon-kit/docs/tabs.html使用它的方式

有人有主意吗?

谢谢,

can*_*ani 11

你快到了:

const { ActionButton } = require("sdk/ui/button/action");
const clipboard = require("sdk/clipboard");
const tabs = require('sdk/tabs');

let button = ActionButton({
  id: "my-button-id",
  label: "Button Label",
  icon: {
    "32": "chrome://mozapps/skin/extensions/extensionGeneric.png"
  },
  onClick: function(state) {
    let url = tabs.activeTab.url;
    console.log("active tab url:", url);
    require("sdk/notifications").notify({
      title: "Active Tab's Url is "+url,
      text: "Click to copy.",
      onClick: function() {
        clipboard.set(url);
      }
    });
  }
});
Run Code Online (Sandbox Code Playgroud)

您应该查看选项卡模块上的文档.

注意:我已更新此代码示例以使用自Firefox 29以来可用的新ui模块 - 原始问题中使用的"小部件"模块当时有效,但此后已被弃用,然后被删除.