14

我正在制作 Firefox 浏览器插件,需要找到当前选项卡的 url

我已经尝试过这篇文章从 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”。

似乎不会发生!不断收到“信息:未定义”,这显然意味着 tabs.url 没有返回任何内容。但这似乎是根据https://addons.mozilla.org/en-US/developers/docs/sdk/1.5/packages/addon-kit/docs/tabs.html使用它的方式

有人有想法么?

谢谢,

将要

4

1 回答 1

12

您快到了:

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

您应该查看tabs 模块上的文档

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

于 2012-07-29T19:28:53.943 回答