Благодаря Wladimir Palant
для указывая направление, но она до сих пор у меня ушло некоторое время, чтобы выяснить окончательный код. Я приведу свой результат здесь для ссылки на других в будущем. (Я упростил код немного здесь для разработки целей, но основная структура должна быть правильной.)
content.js: (Нажмите на ссылку, чтобы открыть страницу параметров)
$("#options").click(function(){
self.port.emit("open_options", {});
});
background.js :
//regsiter the event
backgroundInit = function(worker) {
worker.port.on("open_options", function(request){
var tabs = require("sdk/tabs");
tabs.open({
//open a new tab to display options page
url: self.data.url("options.html"),
});
}
worker.port.on("pull_preferences", function(request){
var preferences = null;
//get preferences (from simple storage or API)
woker.emit("update_content_preferences", {preferences:preferences});
});
worker.port.on("push_preferences", function(request){
var preferences = request.preferences;
//write the preferences (to simple storage or API)
});
}
//register the page, note that you could register multiple ones
pageMod.PageMod({
include: self.data.url('options.html'),
contentScriptFile: [ self.data.url("lib/jquery-1.11.3.min.js"),
self.data.url("options.js")],
contentScriptWhen: 'end',
onAttach: backgroundInit
});
options.js: (эта страница также от контекста содержание сценария)
$(document).ready(function(){
self.port.on("update_content_preferences", function(request){
var preferences = request.preferences;
//update options page values using the preferences
});
$("#save").click(function(){
var preferences = null;
//get preferences from options page
self.port.emit("push_preferences", {preferences:preferences});
});
self.port.emit("pull_preferences", {}); //trigger the pull upon page start
});
Код: https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/tabs
Хорошо, используется модуль простых префов. Отлично работает, спасибо за это! – dvcrn
спасибо @Wladimir .. хороший пост .. – pratikabu
наконец я завершил хорошую реализацию того, что вы сказали. Я обязательно опубликую рабочий пример того, что я сделал .. спасибо за подсказки. – pratikabu