0

Надеюсь, что я не пропустил ответ на этот вопрос, который кажется слишком простым, но я не могу найти ответ между Mozilla или Stackoverflow.Хранение/доступ к простой переменной в Firefox Addon SDK

Я пытаюсь использовать простую память Mozilla Addon SDK для хранения одного номера, содержащего количество страниц, которые были посещены с момента активации аддона. Для этого я увеличиваю число переменных один раз на каждую загрузку страницы. См. Код ниже. Единственное, на что я не могу найти информацию о том, как загрузить сохраненные данные с консоли (или, если я не понимаю, эти данные не хранятся локально в браузере?). В комментарии говорится: «// load ss.storage.page_visits» - вот где моя проблема возникает - я не понимаю, как загрузить эти данные.

var ss = require("sdk/simple-storage"); 
var pageMod = require("sdk/page-mod"); 
//load ss.storage.page_visits 
if (!ss.storage.page_visits){ 
    ss.storage.page_visits = 0; 
} 
var test= '"<style>\ 
       h1{\ 
        font-size: 5em;\ 
        color: red;\ 
        font-family: Helvetica;\ 
       }\ 
      </style>\ 
       <h1>test</h1><h2>' + ss.storage.page_visits + '</h2>"'; 

ss.storage.page_visits++; 
if (ss.storage.page_visits/5 == 1){ 
    pageMod.PageMod({ 
     include: "*", 
     contentScript: 'document.body.innerHTML = ' + 
        test 
    }); 
    ss.storage.page_visits = 0; 
}else{ 
    pageMod.PageMod({ 
     include: "*", 
     contentScript: 'document.body.innerHTML = ' + 
        test 
    }); 
} 
console.log(ss.storage.page_visits); 
+0

Нет необходимости загружать его. Вы можете просто получить к нему доступ. Ваш код должен работать так, как есть. Что делает консольный журнал? – willlma

+0

Консоль вообще не имеет журнала переменной, а переменная, включенная в текст html, который должен подсчитываться на каждом посещении страницы, отображается как 0 независимо от того, сколько посещений сделано. Я хочу, чтобы код работал как есть! –

ответ

1

Нет ничего плохого в простом хранении. Это просто

По умолчанию cfx run и cfx test используют новый профиль каждый раз, когда они выполняются. Это означает, что любые профильные данные, введенные с одного запуска cfx, по умолчанию не будут доступны в следующем прогоне.

См Using --profiledir работать на том же профиле каждый раз, или Extension Auto-Installer запустить расширение без перезапуска браузера.

Способ, которым в настоящее время настроены, ваша сохраненная переменная будет увеличиваться один раз за установку, а не на посещение страницы. Если вы хотите увеличить его при посещении страницы, вам нужно поставить ss.storage.page_visits++ в функцию конструктора PageModonAttach.

Кроме того, почему ss.storage.page_visits/5 == 1?

ss.storage.page_visits == 5

+0

Ага, блестящий. Спасибо, это головоломка, которую мне не хватало. Было интересно ... –

+0

Кроме того, условие заключается в том, что я тестировал постепенный счет до того, где я не был сброшен до 0; просто забыл его отредактировать! –

Смежные вопросы