2014-11-03 35 views
0

我有一個內容腳本,其中有一個名爲myscript.js的腳本,現在我已經制作了這樣的腳本,以便在Google上創建頁面。 com裝載,然後setA的修改完成,否則setB的修改完成。現在我想要一個可以從該瀏覽器上打開的所有網頁訪問的變量。就像我們在java中有靜態變量一樣,變量可以被類的所有對象訪問,在這裏使用這個類比靜態變量是全局變量,對象是加載的網頁如何在內容腳本中創建一個可在所有頁面上訪問的變量

+0

您需要將您的內容腳本的所有實例訪問的東西嗎? – Xan 2014-11-03 13:33:26

+0

是Xan正確 – user3806583 2014-11-04 11:29:06

回答

1

如果你需要在每個實例中可用的東西內容腳本(以及其他擴展頁面),則可以使用chrome.storage API

略有不足的是API是異步的:

var myValue; 
chrome.storage.local.get({myKey: "myDefault"}, function(data) { 
    myValue = data["myKey"]; 
    // You can use myValue here.. 
}); 
// ..but not here 

這是好的,如果你沒事帶鏈接異步代碼;否則,你可以保持一個本地副本,並更新它onChanged,而不是每次都使用get的:

chrome.storage.onChanged.addListener(function(changes, area) { 
    if(area == "local" && changes["myKey"]) { 
     myValue = changes["myKey"].newValue; 
    } 
    }); 
+0

這個解決方案看起來很有希望,我會嘗試並讓你知道。謝謝 – user3806583 2014-11-04 11:32:00

+0

這個解決方案對我來說完美無缺:) – user3806583 2014-11-06 17:57:55

相關問題