2

simple-prefsアドオンのモジュールに問題があります( simple-prefsドキュメント)。menulistまたはradioタイプしようとしています。問題は、アドオンがロードまたは開始されていないことです-関数mainが呼び出されていません。Firefoxの新しい明確なインスタンスを起動するコマンド
を使用する場合、この問題は発生しません。すべてが正しく機能します。cfx runこのアドオンを2台の異なるコンピューターで実行してみましたが、残念ながら同じ結果になりました。
以下にコードスニペットを配置します。

main.js:

var prefs = require("simple-prefs").prefs;
...
exports.main = function (options, callbacks) {
    console.log("Addon loaded: " + self.loadReason);
    var modLogic = pageMod.PageMod({
        include: "*",
        contentScriptWhen: "start",
        contentScriptFile: data.url("myContentScript.js"),
        onAttach: function (worker) {
            console.log("Page worker attached to: " + worker.tab.url);
            // here I'm using prefs object: if(prefs.decision === "Y")
        }
    });
}

package.json:

{
    "name": "myaddon",
    ...
    "preferences" : [{
        "name": "decision",
        "title": "someTitle",
        "type": "radio", // or menulist
        "value": "D",
        "options": [{
                "value": "D",
                "label": "Default"
            },
            {
                "value": "Y",
                "label": "Yes"
            },
            {
                "value": "N",
                "label": "No"
            }
        ]
    }]
}

addon-sdk1.12とFirefox18.0を使用しています。私のコードスニペットにはバグがある可能性があります-ここに書いたばかりです。

4

2 に答える 2

2

少し前にこのサンプルリポジトリを作成しました:

https://github.com/canuckistani/jp-prefs-example

すべての機能が機能します。次のスクリーンショットを参照してください。

https://dl.dropbox.com/u/44296964/Screen%20Shot%202013-01-18%20at%201.50.31%20PM.png

Firefox18とSDK1.12も使用しています。あなたの例では、JSONにコメントがあり、それが問題を引き起こしている可能性があります。

于 2013-01-18T21:55:11.433 に答える
0

そのモジュールは将来のバージョンで変更されるので、どれだけ安全に使用できるかわかりません。ブラウザセッション間でデータを保持するためにsimple-storageを使用しています。また、cfx環境では、タイプが正しく登録されないという奇妙な動作が発生することがあります。念のため、JSON.parse()を使用します。

于 2013-01-18T15:30:35.120 に答える