0

現在、Firefox 拡張機能を作成していますが、特定の URL を参照したときに機能を実行できません。

私の chrome.manifest ではoverlay chrome://browser/content/browser.xul chrome://boxcutter/content/overlay.xulcontent/実際のファイルシステムは次の場所にありますchrome/content/(拡張ジェネレーターを使用しました)。

そのため、スクリプト タグを使用して、pageMod 関数を含むファイルをoverlay.xul参照できると想定しました。main.js

私の pageMod 関数は次のとおりです(おそらくここに何かを詰め込んだため、これが機能しない理由です):

(function() {
    var pageMod;
    pageMod = require('page-mod');

    new pageMod.PageMod({
        include: ["http://battlelog.battlefield.com/bf3/*"],
        contentScriptFile: data.url('boxcutter.js')
    });
}).call(this);

boxcutter.jsユーザーがバトルログに移動すると、これは私のファイルを呼び出すはずですが、何も起こらないようです。boxcutter.jsある時点で、自分の JS が正しく機能していないと思っていましたがalert('test');、ページを追加して更新しても何も起こりませんでした。

これにより、自分のファイルに何か問題があったと思いoverlay.xulましたが、Battlelog サイトの Firebug を介して jQuery 関数を呼び出すことができました (チェックしたので、jQuery ライブラリがないことはわかっています)。

したがって、pageMod スクリプト (上記) が正しく機能していないか、pageMod スクリプトを作成したときに何か問題があったと考えられます。

4

1 に答える 1

2

page-modは、 Firefox アドオン SDKによって提供されるモジュールです。これは、拡張機能を構築するためのフレームワークです。そのフレームワークを使用しない場合 (そして、明らかに使用しないクロム マニフェストとオーバーレイについて話していることを考えると)、明らかにその機能を使用することはできません。従来の拡張機能を使用したい場合は、おそらくオーバーレイにイベントのハンドラーを追加しDOMContentLoaded、ページが基準に一致するかどうかを確認してから、何かを行います。

于 2012-09-13T14:52:46.157 に答える