这是我的package.json,但我的background.js没有在后台运行。我已经尝试了一段时间不同的事情了,并且还没有能够解决这个问题。在此先感谢您的帮助,
CREATE OR REPLACE FUNCTION colums_to_array(text)
RETURNS text[] AS $$
SELECT ARRAY(SELECT column_name::text
FROM information_schema.columns
WHERE table_name = $1::name)
$$ LANGUAGE sql;
postgres=# SELECT colums_to_array('foo');
colums_to_array
------------------
{log_time,xx,yy}
答案 0 :(得分:2)
你应该将content_script放在背景之外,比如
"background": {
"scripts": [
"background.js"
],
"persistent": true
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["background.js"]
}
],
正如@minj所提到的,您应该删除background_page
属性。 (您要么使用它,要么使用background
)
后台也在自己的页面上运行,而不是在浏览器中看到的页面中运行。你可以找到它。
如果您希望在bg和内容脚本中都可以访问脚本,例如带有共享函数的utils.js文件,则可以将其添加到background.scripts
和content_scripts.js
数组
您应该将后台页面视为附加页面(您可以通过转到chrome://extensions/
并点击扩展程序上的background page
直接访问该页面),与浏览器中打开的标签分开。例如,您无法从后台页面访问浏览器中正在查看的页面的dom元素。
例如,当您重新加载普通页面(与上面提到的bg页面相对)时,不会刷新bg页面及其变量。它们只是两个不同的标签。
然而,内容脚本只是在匹配content_scripts.matches
的页面中加载的脚本,就好像它们是从页面本身加载的一样。它们不会在页面之间存在,也不会共享信息。
您可能希望与dom元素进行交互并拥有持久性bg脚本。为此,您使用消息传递协议,在内容脚本和bg页面之间进行异步。我通常使用bg页面作为持久控制器,从内容脚本获取信息并发送命令。
答案 1 :(得分:1)
删除background_page
,因为它会覆盖background
。你只能使用其中一种,而不是两种。
或者,通过常规background.html
代码将脚本添加到script
文件中:
<script type="application/x-javascript" src="/background.js"></script>