0

我有一个非常简单的 Chrome 扩展程序。它基本上只是:

背景.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 幻灯片上使用我的扩展程序,我会得到:

_generated_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")' });

但是由于我的清单清楚地允许我访问该主机(通过 "*://*/*"权限条目),我不知道是什么导致了这个错误或如何修复它。

4

1 回答 1

2

不幸的是,我无法在我自己的幻灯片演示文稿中重现您对该代码的问题(警报运行正常)。

根据评论,我理解这些都没有帮助:

  1. 尝试而<all_urls>不是*://*/*如图所示
  2. 禁用所有其他 Chrome 扩展程序。

鉴于此,试试这个:创建一个新的Chrome 配置文件,将解压后的扩展加载到该配置文件中,看看是否可以重现该问题。

如果我们不能与小精灵推理,也许我们至少可以控制它们。

于 2018-08-13T20:57:02.953 回答