google-chrome-extension - 如何防止 chrome 扩展在 chrome-urls 上执行
问题描述
我的插件运行良好。如果插件在 chrome://extensions/ 之类的 Chrome 网址上运行,我只会在插件错误日志中收到错误消息
//
// Inject the payload.js script into the current tab after the popout has loaded
//
window.addEventListener('load', function (evt) {
chrome.extension.getBackgroundPage().chrome.tabs.executeScript(null, {
file: 'payload.js'
});
});
运行 tabs.executeScript 时生成“未检查的 runtime.lastError:无法访问 chrome:// URL 上下文 _generated_background_page.html”
我尝试仅在 windows.location.hostname 不等于扩展名时才运行它,这使得它在页面上时无法运行,但我仍然收到错误消息。
我在这里读到它可以被忽略,并且有一张缺失的支票,但没有上述支票的例子。https://groups.google.com/a/chromium.org/d/msg/chromium-extensions/qC1o39YkN28/WEOAFv6xNWYJ
解决方案
当您需要通过这种方式在后台页面上注入脚本时,我不知道这种情况。无论如何,您可以添加回调并处理错误
window.addEventListener('load', function (evt) {
chrome.extension.getBackgroundPage().chrome.tabs.executeScript(null, {
file: 'payload.js'
}, ()=>{
if(chrome.runtime.lastError) {
//handle error here
}
});});
推荐阅读
- javascript - 带有数字的 Java Script 随机字符
- java - Thymeleaf 连接对象的属性名称相同的输入字段的值
- html - “必需”html标签上的vue 3 / vitejs / volar项目中的打字稿错误
- keras - keras 中的评估生成器
- postgresql - 是否有社区制作的 PostgreSQL 函数/片段的存储库?
- ionic-framework - 无限循环角火库和离子复选框
- python - 分解正弦波但相位有时似乎不匹配
- mongodb - 在 Mongoose 中,Model.find() 和 Model.find().exec() 产生相同的结果。那么为什么还要使用 Model.find().exec() 呢?
- c - 如何解决我的代码中“->”令牌之前的错误“预期的')'?
- c# - Xamarin 公共类数据如何正确访问它