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

时间:2012-07-20 15:40:24

标签: firefox firefox-addon firefox-addon-sdk

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

我已经尝试了这篇文章Opening a URL in current tab/window from a Firefox Extension,但它告诉我'窗口'没有定义。 (我认为因为我正在制作附加内容而不是附加内容。)

这是我试图做的事情:

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);
  }
})

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

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

使用它的方法

有人有什么想法吗?

谢谢,

威尔

1 个答案:

答案 0 :(得分: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);
      }
    });
  }
});

您应该查看documentation on the tabs module

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