蔦箱(蔦箱)

Firefox Add-ons SDK(拡張機能のSDK)でスクリプトを注入する方法.

greasemonkey的なやつ



mdn
Firefoxのadd-onSDKでロードしたページにスクリプトを注入したくなった(greasemonkey的な感じ)。
軽く調べて見たところpage-modを使用したサンプルが多くあったのですが
page-mod - Mozilla | MDN
page-modはURLがマッチする他のページにも作用してしまうため別の方法を模索してみた。

ページにスクリプトを注入する機能を実現できそうなモジュールが5つあった。
どの機能にしても根底にcontent/workerが関係しているっぽい。
・page-mod
・tabs
・page-worker
・context-menu
・window/util


説明すると
・page-mod
URLがマッチするページすべてにスクリプトを注入することが出来る。
・tabs
タブで開いている特定のページだけにスクリプトを注入できる。
・page-worker
ブラウザ画面に表示せずにページをロードする機能があり、そのページに注入する機能もある。
・context-menu
 よく調べていない。Firefoxのメニューにスクリプトを注入できるっぽい
・window/util
 なんでも注入できる。FirefoxのUIにも注入できるっぽい


今回は開いているページに注入したかったためtabsのサンプルを使用した。
require("sdk/ui/button/action").ActionButton({
id: "highlight-divs",
label: "Highlight divs",
icon: "./icon-16.png",//self.data.url("")とかで自作アイコンを使える。
onClick: function() {
require("sdk/tabs").activeTab.attach({
contentScript://contentScriptFileも使える
'var divs = document.getElementsByTagName("div");' +
'for (var i = 0; i < divs.length; ++i) {' +
'divs[i].setAttribute("style", "border: solid red 1px;");' +
'}'
});
}
});



add-on SDKは日本語のマニュアルが無く。日本語のサイトも少ないので苦労しました。
英語で書かれたマニュアルにしても、内容が異なる新しいものと古い物が混在しているようです。
↓Page-modについて説明していて、内容の異なる公式マニュアル
page-mod - Mozilla | MDN
page-mod - Add-on SDK Documentation

参考URL
Content Scripts - Mozilla | MDN




-サイトのコンテンツ-


記事
記事とか書きます.
新記事
新しい記事.
蔦箱(ツタハコ)
トップページ
作成物
作成した物とか置きます.
その他
適当


連絡先: