私はFirefox拡張機能を作成しており、アドオンSDKを使用しています。しかし、ローカルCSSファイルをデータフォルダーからWebページに挿入する方法がわかりません。page_mod
パッケージを介してそれを行う方法があれば素晴らしいでしょう。
2 に答える
アドオンSDK1.14の時点で、page-modモジュールでこれに対する実験的な(APIが変更される可能性があります)サポートがあります。
var pageMod = require("sdk/page-mod").PageMod({
include: "*",
contentStyleFile: require("sdk/self").data.url("my-style.css")
});
page-modを使用するための詳細なガイドについては、URLに基づいたWebページの変更を参照してください。
Addon SDKのwikiに、現在の実装の問題について説明しているページがありますが、少し時代遅れのようです。
内部的には、 nsIDOMWindowUtils .loadSheet()を使用して、ページのDOMに触れることなくスタイルシートを追加します。(このAPIはFirefox 18で追加されました。バグ737003を参照してください。それ以前は、類似しているがタブ固有ではないnsIStyleSheetServiceを使用する必要がありました。)
その前に、page-modのコンテンツスクリプトを使用して、リンクまたはスタイル要素を挿入できます(例)。[編集]lwburkのコメントのおかげで、Greasemonkey Hacks:WebとFirefoxをリミックスするためのヒントとツールのより詳細な説明があります。MarkPilgrim著:「ページのスタイルを変更する」セクション。
main.js から CSS を挿入するには、「page-mod」を使用できるようになりました。
var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: "*.org",
contentStyleFile: data.url("my-page-mod.css")
});