Google chrome extension chrome.tabs.executeScript不工作?

Google chrome extension chrome.tabs.executeScript不工作?,google-chrome-extension,Google Chrome Extension,我正在努力学习使用chrome.tabs.executeScript。我创建了一个带有浏览器操作的简单扩展。我的background.html文件当前如下所示: chrome.browserAction.onClicked.addListener(函数(选项卡){ executeScript(null,{code:“document.body.bgColor='red'”}); executeScript(null,{file:“content_script.js”}); }); “cont

我正在努力学习使用chrome.tabs.executeScript。我创建了一个带有浏览器操作的简单扩展。我的background.html文件当前如下所示:


chrome.browserAction.onClicked.addListener(函数(选项卡){
executeScript(null,{code:“document.body.bgColor='red'”});
executeScript(null,{file:“content_script.js”});
});
“content_script.js”文件包含document.body.bgColor='red'

按下浏览器操作按钮时,不会发生任何事情。很明显,我遗漏了一些非常基本的东西


我已经用console.log检查过,当按下浏览器操作时,控件确实会到达chrome.tabs.executeScript调用。否则,我甚至不知道如何检查我的内容脚本的代码是否已运行(似乎没有;我在内容脚本中输入的console.log没有效果,但即使脚本已成功运行,它也不应该有效果)。

请确保您在清单中具有域和选项卡权限:

“权限”:[
“选项卡”、“http://*/*”、“https://*/*”
]
然后,要更改车身颜色,请尝试:

chrome.tabs.executeScript(null,{code:“document.body.style.backgroundColor='red'');

还请记住,内容脚本不会注入任何
chrome://
或扩展库页面。

对于仍有问题的用户,您需要确保在chrome中重新加载扩展的权限


转到
chrome://extensions
,滚动至您的分机,然后单击“重新加载”。单击扩展旁边的“权限”链接,确保您的权限已更新。

您实际上不需要也不想要executeScript的“选项卡”权限

"permissions": [
  "http://*/*", 
  "https://*/*"
]

应该足够了

不建议使用
http://*/*
https://*/*
。从谷歌文档中:

要插入编程内容脚本,请在清单中提供权限。这将授予对活动站点主机的安全访问和对选项卡的临时访问权限,使内容脚本能够在当前活动选项卡上运行,而无需指定


相反,(如页面中所建议的),只需使用
activeTab
权限。

我的关键问题是,在新窗口中启动新选项卡时,默认url是chrome://newtab 它禁止上面提到的内容脚本。将任何其他url作为起始点运行得很好。但是,这实际上并不会从文件中加载脚本。它执行raw.FYI中的代码,您可以使用
*://*/*
而不是
http://*/*
https://*/*
来设置所有urlsKyleMit的权限,我认为“*”也会使其与ftp等匹配,这不是您想要的问题。不建议仅为
executeScript设置这些权限(有关更多详细信息,请参阅)我在我的扩展页面中未看到任何权限链接。