查找当前选项卡的URL。制作FireFox浏览器附加组件

查找当前选项卡的URL。制作FireFox浏览器附加组件,firefox,firefox-addon,firefox-addon-sdk,Firefox,Firefox Addon,Firefox Addon Sdk,我正在制作一个Firefox浏览器插件,需要找到当前选项卡的url 我试过这篇文章,但它告诉我“窗口”没有定义。(我想是因为我在做一个附加组件而不是扩展。) 以下是我试图做的: var widgets = require('widget'); var tabs = require('tabs'); var widget1 = widgets.Widget({ id: "widget1", label: "widget1", contentURL: "http://www.mozil

我正在制作一个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);
  }
})
我制作了一个小部件,当我点击它时,当前选项卡的url应该是“console.log”

似乎没有发生!继续获取“info:undefined”,这显然意味着tabs.url不会返回任何内容。但这似乎是使用它的方式

有人有什么想法吗

谢谢

威尔

你就快到了:

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);
      }
    });
  }
});
你应该去看看报纸


注意:我已经更新了这个代码示例,以使用自Firefox 29以来提供的新ui模块-原始问题中使用的“小部件”模块在当时是有效的,但后来被弃用,然后被删除。

ahh非常感谢。我们还将看一看jetpack示例。