Google chrome chrome.tabs.onUpdated listener在第一次加载后执行脚本,效果非常奇怪
我正在编写一个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.jsonGoogle chrome chrome.tabs.onUpdated listener在第一次加载后执行脚本,效果非常奇怪,google-chrome,google-chrome-extension,Google Chrome,Google Chrome Extension,我正在编写一个chrome扩展,在加载特定页面后删除其中的元素,我看到了不一致的行为 我有两个监听器,一个是热键,另一个是chrome.tabs.onUpdate监听器。两者都对同一个附加文件进行executeScript调用 OnUpdated首先失败,并出现清单权限错误,每次重新加载都会继续失败。当我从热键执行调用时,它工作,然后未更新的调用工作并随后重新加载 如果我在一个新选项卡中打开页面,它将返回失败状态,直到我使用热键执行调用。如果我从管理页面重新加载扩展,它也会返回失败 我错过了什么
"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。关于为什么用热键触发相同的行为有效,有什么见解吗?或者为什么这会改变未更新代码的行为?我不知道为什么您会遇到与键盘快捷键不一致的情况。看起来像只虫子,但我不确定。我还没有亲自调查过。谢谢你花时间回答我,非常感谢。不客气。如果我解决了您的问题,您可以通过单击旁边的绿色复选标记接受我的答案,这样您的问题就可以标记为已解决。完成!再次感谢!