1

ユーザー入力としてリンクを一度だけ取得する拡張機能を作成しています。次に、拡張機能全体が、JS ファイル内のさまざまな関数でそのリンクを使用し続けます。ユーザーがそれを変更すると、それに応じて js ファイルによってアクセスされる値も変更されます。以下を使用していますが、うまくいきません

var pref_manager = Components.classes["@mozilla.org/preferencesservice;1"].getService(Components.interfaces.nsIPrefService)

function setInstance(){

   if (pref_manager.prefHasUserValue("myvar"))
{
   instance = pref_manager.getString("myvar");

    alert(instance);
} 
    if(instance == null){

instance = prompt("Please enter webcenter host and port");

    // Setting the value
pref_manager.setString("myvar", instance);

    }
}

インスタンスは、ユーザー入力を受け取るグローバル変数です。アラート (インスタンス) が表示されません。これは、設定を保存または抽出する方法に問題があることを意味します。誰かがこれで私を助けてくれませんか。私はこれまで設定を操作したことがありません。そのため、些細な問題があったとしても、把握できない場合があります。

4

2 に答える 2

0

現在、比較する独自のコードは手元にありませんが、上記のすべては問題ないように見えます。私の推測では、 Firefox はデフォルト値が指定されていないと設定を無視すると思うので、設定にデフォルト値を設定しなかったことが問題だと思います。

見る:

https://developer.mozilla.org/en/Adding_preferences_to_an_extension

于 2010-07-28T03:44:36.007 に答える
0

プリファレンスが文字列の場合は、「pref_manager.getCharPref("prefname")」を使用します。あなたはまた持つことができます:

pref_manager.getBoolPref("prefname"); // ブール値 (true/false) 設定

pref_manager.getIntPref("prefname"); // 数字

于 2010-09-16T12:53:47.657 に答える