0

ブラウザ ボタンをクリックするとコンテンツ スクリプトを追加する chrome 拡張機能を完成させました。私はFirefoxでそれを達成するための同じ方法を探しています.PageModを見つけましたが、ウィジェットへのonclickイベント内では機能しないようです.

これを作るための提案はありますか?

4

1 に答える 1

1

あなたが「ブラウザ ボタン」と呼んでいるものは、Mozilla がウィジェットと呼んでいるものだと思います。page -modを有効にするのに何もクリックする必要はなく、一致する Web ページを「アタッチ」(開く) するだけです。

ウィジェットのクリックに続いてページ コンテンツ (ページの DOM) を操作するには、ウィジェットのonClick属性の値を引数のない無名関数にする必要があります。この関数では、変数がアクティブなタブのattachイベントに設定されます。

var self=require("self");
var data = self.data;
var widget = require("widget");
var tabs = require("tabs");


var erase = widget.Widget({
 id: "magated",
 label: "click this widget",
 content: "<div>?</div>",
 contentScriptWhen: "start",
 contentScriptUrl: data.url("cs.js"),
 onClick:function () {
  worker = tabs.activeTab.attach({
    contentScriptWhen: "start",
    contentScriptFile: [data.url("cs.js")],
  });
  worker.port.emit("dothing", tabs.activeTab.url);
 },
});

cs.js では、次のようになります。

self.port.on("dothing", function (url) {
  var bigUrl = document.createElement("h1");
  bigUrl.textContent = url;
  document.body.insertBefore(bigUrl, document.body.firstElementChild);
});
于 2013-04-08T03:39:27.973 に答える