Google chrome extension 执行chrome.extension.getBackgroundPage()时引发错误

Google chrome extension 执行chrome.extension.getBackgroundPage()时引发错误,google-chrome-extension,Google Chrome Extension,我正在开发我的第一个扩展,并试图创建一个简单的扩展,在页面上注入一个可拖动的div。这很好,但是我想在后台页面上保留div的位置,我也在尝试本地存储,但是我想了解为什么这不起作用 我不需要按钮,所以没有创建popup.html文件,我相信这是完全可选的。到目前为止,仅仅注入javascript文件显然是有效的 但是,我现在在执行chrome.extension.getBackgroundPage时遇到以下错误: 未捕获错误:chrome.extension.getBackgroundPage只能

我正在开发我的第一个扩展,并试图创建一个简单的扩展,在页面上注入一个可拖动的div。这很好,但是我想在后台页面上保留div的位置,我也在尝试本地存储,但是我想了解为什么这不起作用

我不需要按钮,所以没有创建popup.html文件,我相信这是完全可选的。到目前为止,仅仅注入javascript文件显然是有效的

但是,我现在在执行chrome.extension.getBackgroundPage时遇到以下错误:

未捕获错误:chrome.extension.getBackgroundPage只能在扩展进程中使用。有关更多详细信息,请参阅内容脚本文档

内容脚本文档似乎没有发现我的方法有任何错误:

这是我正在使用的一份经过编辑的清单:

{
"name": "My helper",
"version": "1.0", 
"description": "Tastes great",
"background_page": "background.html",
"content_scripts": [
    {
        "matches":["https://page.of.interest/*"],
        "run_at":"document_idle",
        "js":[ "jquery.js", "jquery-ui-1.8.17.custom.min.js", "my_content_script.js"],
        "css": [ "my_content_script.css" ]
    }
],
"permissions": [
  "background"
] 
}
因此,我在我的_content_script.js中运行此语句。这不被认为是扩展过程的一部分吗?我只能在popup.html或其他可能的文件上运行此操作吗?档案

如果是这种情况,那么只使用localstorage可能比尝试通过dom与扩展进程通信更容易


尽管我对其中一些概念一无所知,但希望我已经说清楚了。

我不认为文档明确地说你不能从内容脚本使用chrome.extension.getBackgroundPage,但因为内容脚本的权限更倾向于运行它的页面,所以不允许访问它。不过,这些方法有几种

与其他chrome.*API不同,chrome.extension的部分内容可由内容脚本使用:

您必须使用在后台页面和内容脚本之间进行通信。

您必须使用chrome.cookies.get in background.html,然后在内容脚本和background.html之间进行通信以交换cookie数据