2012-06-21 4 views
0

기능에 의해 설정된 상태 표시 줄의 레이블 값에 문제가 있습니다. 사용자가 브라우저를 닫고 복구 한 다음 다시 실행하기 전에이 값을 저장해야합니다. 쿠키를 사용하는 것이 가능하다고 생각하는 유일한 방법입니다. 설정 쿠키 을 :Firefox 확장의 값 저장 및 복구

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); 

을하고이를 읽기 위해 : 나는 MDN 2 개 흥미로운 코드를 발견했습니다

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"에서 인터넷 주소를 설정해야하는 이유는 무엇입니까? 미안하지만 아직도 배우고 있습니다 :). 도움이된다면 기뻐할거야. 감사합니다.

답변

1

환경 설정을 사용하여 정보를 저장하는 것이 좋습니다. 기본 환경 설정 js 파일에 환경 설정을 추가하십시오. pref("extensions.myextension.thelabelvalue", "whatever"); https://developer.mozilla.org/en/Building_an_Extension#Defaults_Files

다음 주에 javscript 파일 https://developer.mozilla.org/en/JavaScript_code_modules/Services.jsm

의 상단에 Components.utils.import("resource://gre/modules/Services.jsm");을 추가하고 다음 설정을 사용할 수 있습니다/수 환경 설정 방법은 다음과 같습니다 : 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'); 
관련 문제