Google chrome chrome.tabs.onUpdated listener在第一次加载后执行脚本,效果非常奇怪

Google chrome chrome.tabs.onUpdated listener在第一次加载后执行脚本,效果非常奇怪,google-chrome,google-chrome-extension,Google Chrome,Google Chrome Extension,我正在编写一个chrome扩展,在加载特定页面后删除其中的元素,我看到了不一致的行为 我有两个监听器,一个是热键,另一个是chrome.tabs.onUpdate监听器。两者都对同一个附加文件进行executeScript调用 OnUpdated首先失败,并出现清单权限错误,每次重新加载都会继续失败。当我从热键执行调用时,它工作,然后未更新的调用工作并随后重新加载 如果我在一个新选项卡中打开页面,它将返回失败状态,直到我使用热键执行调用。如果我从管理页面重新加载扩展,它也会返回失败 我错过了什么

我正在编写一个chrome扩展,在加载特定页面后删除其中的元素,我看到了不一致的行为

我有两个监听器,一个是热键,另一个是chrome.tabs.onUpdate监听器。两者都对同一个附加文件进行executeScript调用

OnUpdated首先失败,并出现清单权限错误,每次重新加载都会继续失败。当我从热键执行调用时,它工作,然后未更新的调用工作并随后重新加载

如果我在一个新选项卡中打开页面,它将返回失败状态,直到我使用热键执行调用。如果我从管理页面重新加载扩展,它也会返回失败

我错过了什么明显的东西吗?我已尝试将http://*/*添加到我的权限中,但行为相同

background.js

chrome.commands.onCommand.addListenerfunction命令{ 如果命令===测试警报{ 试一试{ chrome.tabs.executeScriptFull,{file:testalert.js}; }捕手{ chrome.extension.getBackgroundPage.console.logerr; } } }; chrome.tabs.onUpdate.addListenerfunctiontabId,changeInfo,tab{ ifchangeInfo.status==complete&&tab.url.includeNytimes{ chrome.tabs.executeScriptaBid,{file:testalert.js}; }; }; manifest.json

"commands": {
  "test-alert": {
    "suggested_key": {
      "default": "Ctrl+M",
      "mac": "Command+M"
    },
    "description": "test alert"
  }
}
testalert.js

警报测试; 错误:

Unchecked runtime.lastError: Cannot access contents of url "https://www.nytimes.com". Extension manifest must request permission to access this host.
我错过了什么明显的东西吗

看起来是这样。请更仔细地查看错误消息:

Cannot access contents of url "https://www.nytimes.com"

协议是https,而不是http。您应该在清单权限中使用https://*/*甚至可以匹配所有协议。

谢谢您的回复。我很难为情地说,添加确实解决了这个问题,显然是我的疏忽。我最初试图限制分配给扩展的权限数量,我确实声明了activeTab。关于为什么用热键触发相同的行为有效,有什么见解吗?或者为什么这会改变未更新代码的行为?我不知道为什么您会遇到与键盘快捷键不一致的情况。看起来像只虫子,但我不确定。我还没有亲自调查过。谢谢你花时间回答我,非常感谢。不客气。如果我解决了您的问题,您可以通过单击旁边的绿色复选标记接受我的答案,这样您的问题就可以标记为已解决。完成!再次感谢!