0

我希望我沒有錯過這個問題的答案,這似乎太簡單了,但我找不到在Mozilla或Stackoverflow之間的答案。在Firefox Addon SDK中存儲/訪問一個簡單的變量

我正在嘗試使用Mozilla Addon SDK簡單存儲來存儲一個單一的數字,其中包含自激活插件後已訪問的頁數。爲了做到這一點,我在每次頁面加載時增加一次變量號碼。見下面的代碼。我無法找到信息的唯一方法是如何從控制檯加載存儲的數據(或者,如果我誤解,這些數據不是本地存儲在瀏覽器中?)。那裏的評論說「//載入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 2014-11-24 00:45:55

+0

控制檯根本沒有變量的日誌,並且包含在html文本中的每個頁面訪問應計數的變量顯示爲0,無論進行了多少次訪問。我希望代碼按原樣運行! – 2014-11-25 19:12:06

回答

1

簡單存儲沒有問題。

默認情況下,cfx run和cfx test每次執行時都會使用一個新的配置文件。這意味着從一次cfx輸入中輸入的任何特定於配置文件的數據在默認情況下不會在下一次運行中可用。

Using --profiledir對相同的配置文件,每次運行,或Extension Auto-Installer無需重新啓動瀏覽器中運行的擴展。

當前設置的方式,您存儲的變量將在每次安裝時遞增一次,而不是每頁訪問。如果你想在頁面訪問時增加它,你需要在PageModonAttach構造函數中放置ss.storage.page_visits++

另外,爲什麼ss.storage.page_visits/5 == 1

ss.storage.page_visits == 5

+0

啊哈,輝煌。謝謝你,那是我錯過的拼圖。一直想知道... – 2014-11-27 19:58:49

+0

此外,條件是因爲我已經在我沒有重置爲0之前測試了一個漸進計數;剛剛忘記編輯它! – 2014-11-27 19:59:40

相關問題