0

関数によって設定されるステータスバーのラベル値に問題があります。ユーザーがブラウザーを閉じる前にこの値を保存し、それを回復して関数を再度実行する必要があります。それが可能だと思う唯一の方法は、Cookieを使用することです。MDN で 2 つの興味深いコードを見つけました: Cookie を設定する場合:

var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService); 
    var cookieUri = ios.newURI("http://www.yourplacewhereyouwanttosetthecookie.com/", null, null); 
    var cookieSvc = Components.classes["@mozilla.org/cookieService;1"].getService(Components.interfaces.nsICookieService); 

    cookieSvc.setCookieString(cookieUri, null, "your_key=your_value;", null); 

そしてそれらを読むために:

var ios = Components.classes["@mozilla.org/network/io-service;1"] 
                .getService(Components.interfaces.nsIIOService); 
    var uri = ios.newURI("http://www.google.com/", null, null); 
    var cookieSvc = Components.classes["@mozilla.org/cookieService;1"] 
                      .getService(Components.interfaces.nsICookieService); 
    var cookie = cookieSvc.getCookieString(uri, null);  

問題は、私がこれを理解できないことです。ステータスバーのラベルをどこに置くことができますか? "your_key=your_value" とはどういう意味ですか? 読み取りコードを使用してこの値を回復するにはどうすればよいですか? 「newURI」にインターネットアドレスを設定する必要があるのはなぜですか? 申し訳ありませんが、私はまだそれを学んでいます :) . 助けがあればうれしいです。どうもありがとう!

4

1 に答える 1

1

プリファレンスを使用してその情報を保存する方がよいでしょう。デフォルトの設定 js ファイルに設定を追加します (例: pref("extensions.myextension.thelabelvalue", "whatever"); https://developer.mozilla.org/en/Building_an_Extension#Defaults_Files)。

次にComponents.utils.import("resource://gre/modules/Services.jsm");、メインの javascript ファイルの先頭に追加しますhttps://developer.mozilla.org/en/JavaScript_code_modules/Services.jsm

次に、ここにリストされている set/get 設定メソッドを使用できます: https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIPrefBranch

例えば

let myPrefs=Services.prefs.getBranch("extensions.myextension.")
myPrefs.setCharPref('thelabelvalue', text_value_from_label);
myPrefs.getCharPref('thelabelvalue');
于 2012-06-21T07:54:48.583 に答える