我正在尝试从content_script访问网页的localStorage
变量,类似于如何从content_script访问网页的cookies
。
我从content_script访问页面的cookie没有问题。
但是,localStorage.getItem("showDash")
和localStorage.setItem("showDash", "value")
在内容脚本中不起作用。
浏览器似乎无法识别它并引发错误:
Uncaught TypeError: undefined is not a function
为什么localStorage
在content_scripts中不起作用?
我可以解决这个问题吗?
manifest.json的一部分:
"content_scripts": [{
"matches": ["https://cms.mmu.edu.my/*"],
"js": ["angular.min.js", "jquery.min.js", "page_handler.js"]
}]
page_handler.js的一部分:
if (! localStorage.getItem("DashIsOn"))
localStorage.setItem("DashIsOn", "true");
答案 0 :(得分:0)
localStorage
可在内容脚本中访问,您可以轻松地对其进行测试。在 stackoverflow.com 上打开一个标签(就像这个问题一样),保持活动状态,然后在后台页面脚本/控制台中运行以下代码:
chrome.tabs.query({active:true}, function(tabs) {
chrome.tabs.executeScript(tabs[0].id, {code: 'alert(localStorage.getItem("se:fkey"));'});
});
您将看到显示Stack Exchange密钥的警报。因此,您的问题必须在代码的另一部分中,或者,也许,您在其他地方而不是在内容脚本中使用localStorage.getItem()
。 我建议您为问题添加更多代码,例如manifest.json
文件和完整的content.js
脚本。