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」になるようなウィジェットを作成しました。

起こらないようです!「info:undefined」を取得し続けます。これは、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 に答える