我有一个非常简单的Chrome扩展程序。基本上就是这样:
background.js:
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript({ code: 'alert("hi")' });
});
manifest.json(相关部分):
{
"manifest_version": 2,
"name": "ABC",
"version": "0.0.1",
"description": "abc",
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_title": "Start"
},
"permissions": [
"activeTab",
"tabs",
"*://*/*"
]
}
奇怪的是,我可以在大多数站点上使用它,而且效果很好:我按预期得到了alert
,没有任何错误。但是,如果我尝试在Google幻灯片上使用扩展程序,则会得到:
_genic_background_page.html:1运行tabs.executeScript时未经检查的runtime.lastError:无法访问URL“ https://docs.google.com/presentation/d/1_utjr0oy3rpsFq_R2YxAi2qNUIGItpj7ePhBCgqkdRY/edit#slide=id.g36de8e2a97_0_0”的内容。扩展清单必须请求访问此主机的权限。 在chrome-extension://ijlnhinabondoaapkefkfbkickaemgdl/background.js:55:15
(第55行是chrome.tabs.executeScript({ code: 'alert("hi")' });
行)
但是,由于清单很明显地(通过"*://*/*"
权限项,使我拥有了该主机的权限,所以我不知道是什么原因导致了此错误或如何解决该错误。
答案 0 :(得分:2)
很遗憾,我无法在我自己的幻灯片演示中重现该代码的问题(警报运行正常)。
根据评论,我理解这些都没有帮助:
<all_urls>
,而不是here,如图Chrome profile所示。为此,请尝试以下操作:创建一个全新的{{3}},将解压缩的扩展程序加载到该配置文件中,看看是否可以重现该问题。
如果我们无法推理出这些小怪物,也许我们至少可以包含它们。