2016-06-09 69 views
0

我想用localStorage來保存和使用數據。我可以保存和使用數據,但是當我在chrome.tabs.executeScript中使用localStorage時,localStorage始終爲空......爲什麼?localStorage在chrome.tabs.executeScript中不起作用?

我的代碼

chrome.tabs.executeScript({ code: 
    'document.getElementById(":2k.en").onclick = function(){ 
     alert(localStorage.getItem("Message")); 
     document.getElementById(":2i").value = localStorage.getItem("Token"); 
     document.getElementById(":2k.jl").textContent = "it is OK"; 
    }' 
}); 

謝謝!

+0

我猜你正在使用內容腳本;我的擴展程序有同樣的問題。解決方法是使用'chrome.storage',參見[here](http://stackoverflow.com/questions/3598669/cookie-or-localstorage-with-chrome-extensions/15466494#15466494)進行討論 –

+0

謝謝你的支持答案,你可以給我一些示例代碼(如如何在bankgroud.js中設置以及如何獲取content_script)?我紅色[鏈接](https://developer.chrome.com/extensions/storage.html),我試過了,它不工作....... – user2262304

+0

有一些有用的例子[這裏]( https://developer.chrome.com/extensions/storage)。這有幫助嗎? –

回答

0

@Noam黑客,你是對的。需要使用Chrome.storage API來存儲,檢索和跟蹤用戶數據的更改。通過使用該API,您需要聲明extension manifest中的storage權限才能使用存儲API。

{ 
"name": "My extension", 
... 
"permissions": [ 
"storage" 
], 
... 

}

使用get StorageArea.get(string or array of string or object keys, function callback)其回調擺脫存儲一個或多個項目。一個空的列表或對象將返回一個空的結果對象。傳入null以獲取存儲的全部內容。

background.js

該腳本將內容存儲鉻

//Set some content from background page 
chrome.storage.local.set({"identifier":"Some awesome Content"},function(){ 
console.log("Storage Succesful"); 
}); 
//get all contents of chrome storage 
chrome.storage.local.get(null,function (obj){ 
console.log(JSON.stringify(obj)); 
}); 

popup.js

此腳本將檢索並設置內容從\ Chrome瀏覽器的存儲

document.addEventListener("DOMContentLoaded",function(){ 
//Fetch all contents 
chrome.storage.local.get(null,function (obj){ 
console.log(JSON.stringify(obj)); 
}); 
//Set some content from browser action 
chrome.storage.local.set({"anotherIdentifier":"Another awesome Content"},function(){ 
console.log("Storage Succesful"); 
}); 
}); 
相關問題