2

私はコンテキストメニューページモッドモジュールを使用するFirefoxアドオンを書いています。

このアドオンは、コンテキストが入力コントロールの場合、コンテキストメニューに新しいメニュー項目を追加します。メニュー項目をクリックすると、サーバーにデータの取得を要求し、使用しているコンテンツスクリプトに結果をプッシュpage-modします。

何らかの理由で、onAttach関数が呼び出されていません。コンソールにエラーはありません。なぜ呼び出されないのかわかりません。これが私がしていることです。

var data = require("self").data,
    contextMenu = require("context-menu"),
    request = require("request").Request;

var workers = [];
var pageMod = require("page-mod");
pageMod.PageMod({
    include: '*',
    contentScriptWhen: 'ready',
    contentScriptFile: [data.url("jquery-1.8.2.min.js"), data.url("varnam.js")],
    onAttach: function(worker) {
        console.log("onAttach");
        workers.push(worker);
        worker.on("detach", function() {
            var index = workers.indexOf(worker);
            if (index >= 0) workers.splice(index, 1);
        });
    }
});

この問題を解決するための助けは素晴らしいでしょう。完全なコードはここから入手できます。

4

1 に答える 1

8

httpURLパターンがアスタリスクで始まる(または単にアスタリスクである)場合、それは、、httpsおよびのスキームを持つURLと照合されftpます。

テストページはデータディレクトリにあるため、そのURLスキームはresourceです。そのため、PageModはトリガーされません。

次のような操作を行うことで、テストページのURLを追加できます。

var varnam = pageMod.PageMod({ 
// blah blah
});

varnam.include.add(data.url("test.html"));
于 2012-12-09T16:31:48.453 に答える