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