Chrome 存储 API 无法使用内容脚本
Chrome storage API not working with content script
我正在使用 chrome 存储 API 来保存需要在内容脚本页面上访问的数据。当我像这样在扩展设置页面中加载数据时
document.write("chrome.storage.sync.get(\"password\", function(items) {\n");
document.write("var true_password = items.password;\n");
document.write("});\n");
它有效,但相同的代码不适用于内容脚本...
我遇到了这个错误
Uncaught TypeError: Cannot read property 'sync' of undefined
知道为什么吗?
编辑
manifest.json
{
"name":"app",
"description":"app...",
"version":"0.1",
"manifest_version":2,
"options_page": "options.html",
"permissions": [ "storage" ],
"content_scripts": [
{
"matches": ["https://www.my_page.com/*"],
"js": ["lock.js"]
}
]
}
您直接写入页面 DOM 的任何内容,无论是使用 document.write
还是插入 <script>
元素,都不再被视为内容脚本。
相反,它在页面自身的上下文中 the "isolated world" 之外执行。这意味着它无法访问内容脚本 API 或您的内容脚本中定义的 variables/functions。
不过你仍然可以communicate with page-level code。
我正在使用 chrome 存储 API 来保存需要在内容脚本页面上访问的数据。当我像这样在扩展设置页面中加载数据时
document.write("chrome.storage.sync.get(\"password\", function(items) {\n");
document.write("var true_password = items.password;\n");
document.write("});\n");
它有效,但相同的代码不适用于内容脚本...
我遇到了这个错误
Uncaught TypeError: Cannot read property 'sync' of undefined
知道为什么吗?
编辑
manifest.json
{
"name":"app",
"description":"app...",
"version":"0.1",
"manifest_version":2,
"options_page": "options.html",
"permissions": [ "storage" ],
"content_scripts": [
{
"matches": ["https://www.my_page.com/*"],
"js": ["lock.js"]
}
]
}
您直接写入页面 DOM 的任何内容,无论是使用 document.write
还是插入 <script>
元素,都不再被视为内容脚本。
相反,它在页面自身的上下文中 the "isolated world" 之外执行。这意味着它无法访问内容脚本 API 或您的内容脚本中定义的 variables/functions。
不过你仍然可以communicate with page-level code。