我想使用localStorage
来保存和使用数据。我可以保存和使用数据,但当我在localStorage
中使用chrome.tabs.executeScript
时,localStorage
始终为空...为什么?
我的代码
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 :(得分:0)
@Noam Hacker,你是对的。需要使用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 强>
此脚本将内容设置为chrome存储
//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");
});
});