2012-11-10 5 views
1

다른 날 나는 예비 검토를 위해 Mozilla Addons에게 addon을 제출했다. 리뷰 작성자가 추천 한 내용은 다음과 같습니다.javascript 모듈을 사용하여 Mozilla 용 환경 설정을로드하는 방법은 무엇입니까?

가능한 경우 JavaScript 모듈을 사용하십시오. 이들은 이 아직로드되지 않았고 메모리 소비를 줄이고 응답 시간 인 경우에만 가져 오기됩니다. https://developer.mozilla.org/en-US/docs/JavaScript_code_moduleshttps://developer.mozilla.org/en-US/docs/JavaScript_code_modules/Services.jsm 을 참조하십시오. Services.prefs는 당신에게 흥미 롭습니다.

지금, 나는 내의 환경 설정을로드하려면이 옵션을 사용하고 있었다 :

var에의 환경 설정을 = Components.classes [ "@ mozilla.org/preferences-service;1"] .getService (Components.interfaces.nsIPrefBranch);

나중에 ...

var mypref= this.prefs.getBoolPref("extensions.myaddon.mypref"); 

는 지금, 나는 페이지 참조 쳐다 보면서 그것을 검토가 제안하는 방식을 수행하는 방법을 모르겠습니다. 그런 식으로하는 방법의 예를 찾을 수 없습니다.

Components.utils.import('resource://textlink-modules/prefs.js'), 

...하지만 난 그 후 mypref을 참조하는 방법을 알아낼 수 없습니다 : 내가 할 수있는 최선이 추가되었다. 나는 addons에 새로운 사람이 나를 도울 수 있다면, 좋을 것입니다. 그의 방식대로 어떻게 할 수 있습니까?

답변

4

prefs.js은 모듈이 아니므로 모듈로 가져올 수 없습니다.

서비스 모듈을 일단 가져온 다음 전역 변수 서비스를 통해 제공되는 다양한 서비스를 참조 할 수 있습니다.

편집 :

Components.utils.import("resource://gre/modules/Services.jsm"); 
var prefs = Services.prefs; 
var mypref = prefs.getBoolPref("extensions.myaddon.mypref"); 
+1

내가 prefs.js'이 모듈 아니다'이해하지만 내가 MDN에서 그 예를 가지고, 오히려 혼란 스러워요. 당신이 나에게 모범을 보여줄 정도로 친절한가? 나는 문서에서 그것을 파악하는 것처럼 보일 수 없다. – bgmCoder

+0

나는 대답을 편집했다 – paa

+0

마침내, 그 다음, 나의 pref를 얻기 위해, 나는 이것을 할 권리가 있는가? :'var mypref = prefs.getBoolPref ("extensions.myaddon.mypref"); ' – bgmCoder