提问人:Safwan Khan 提问时间:7/24/2023 最后编辑:Safwan Khan 更新时间:7/24/2023 访问量:119
为什么我的 chrome 扩展程序在基于 chrome:// 的 URL 中不起作用 [重复]
Why doesn't my chrome extension work in chrome:// based URLs [duplicate]
问:
大家好,我正在构建一个 chrome 扩展程序,该扩展程序会根据用户的情绪生成报价。
我的 chrome 扩展涉及使用内容脚本,通过使用 DOM 和 JS 在屏幕上插入覆盖层来修改用户的活动浏览器窗口。上图显示了这一点。
但是,我注意到我的 chrome 扩展程序不适用于基于 chrome:// 的 URL(例如:chrome://extensions/ 和 chrome://newtab)。
它引发以下异常:
Uncaught (in promise) Error: Could not establish connection. Receiving end does not exist.
它适用于其他任何地方,并且不会引发此异常。
我看到在类似的 StackOverflow 帖子中,在 url chrome:// 中执行扩展后,chrome 扩展不起作用,并且通过在线的一些研究,Google Chrome 不允许运行其行为涉及修改 chrome 设置和功能的扩展。
这是否适用于我的扩展程序的情况?有没有办法解决这个问题?我已经在我的 chrome 扩展程序的 manifest.json 文件下面发帖了。理想情况下,我希望我的扩展至少能够在 chrome://newtab 上运行。我真的很感激对这个问题的见解。
manifest.json
{
"manifest_version": 3,
"name": "Quotr",
"description": "A Quote Generator Chrome Extension",
"version": "1.0",
"permissions": [
"tabs",
"activeTab"
],
"action": {
"default_popup": "popup/popup.html",
"default_icon": "icons/QuotrPicture.png"
},
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": [
"scripts/content-script.js",
"quote-display/quote-display.js"
]
}
]
}
答:
包含的任何页面上都不允许使用内容脚本。https://codereview.chromium.org/2978953002/。chrome://
newtab
来自同一来源:
希望修改新标签页的扩展应通过 chrome url 的使用 会覆盖 [1] API
所以我想最接近的解决方法是创建一个自定义登录页面(那里有扩展可以做到这一点)并允许你的脚本在那里运行。newtab
评论