В окне настроек по вкл/выкл чекбоксу меняется иконка.
Сохраняю:

Выделить код

Код:

function lwf_option_save(){
var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch('extentionname');
prefs.setIntPref("extentionname.lfw__Channels__Selector_", document.getElementById("lfwChannelsSelector").image);}

Загружаю:

Выделить код

Код:

function lwf_option_load(){
var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch('extentionname');
document.getElementById("lfwChannelsSelector").image = prefs.getIntPref("extentionname.lfw__Channels__Selector_");}

... и иконка пропадает. Подозреваю, что тут нужен не setIntPref. А вот что?
Спасибо.

setCharPref / getCharPref
Но если присутствуют не только ASCII-символы, смотрите, как сделано в chrome://global/content/nsUserSettings.js (nsPreferences.setUnicharPref nsPreferences.copyUnicharPref).

Добавлено Fri Apr 25 00:04:57 2008 :
А вообще, это через CSS обычно делается...

Выделить код

Код:

#id { list-style-image: url("..."); }
#id[checked="true"] { list-style-image: url("..."); }

адрес, как я понимаю, должен быть текстовым, а не числовым. соотвественно, нужно использовать setCharPref.

setCharPref пробовал, но тоже не спасало. Но проверю ещё раз, спасибо.

upd. Неа, не работает.
Выкрутился через проверку в онлоаде состояния чекбокса

Выделить код

Код:

function lwf_option_load(){
if(document.getElementById("lfwRSSenableToggle").checked) 
  {
  document.getElementById("lfwChannelsSelector").setAttribute("image", "chrome://extentionname/content/pics/lfw_RSS.png");
  }
else 
  {
  document.getElementById("lfwChannelsSelector").setAttribute("image", "chrome://extentionname/content/pics/lfw_RSS-disable.png");
  }
}

, но вопрос пока открыт. CSS у меня нет и ради этого его заводить неохота))