gpt4 book ai didi

google-chrome-extension - chrome 扩展中用户可配置的 url 权限

转载 作者:行者123 更新时间:2023-12-02 01:19:03 25 4
gpt4 key购买 nike

我正在创建一个 chrome 扩展,它向 JIRA 添加一个带有全局热键的操作。我可以将我自己的 JIRA 实例的 url 硬编码到我的扩展中,但我希望这个 url 是用户可配置的,因为其他用户将有不同的 url 用于他们自己的 JIRA 实例。

我想知道是否有比仅授予我所有 url 的扩展权限并检查我的后台脚本以将当前 url 与用户选择作为设置的 url 进行比较的更好方法。理想情况下,我的后台/注入(inject)脚本只会在用户选择的 url 上运行。我看着 permissions api但无法弄清楚。

我当前的 manifest.json 如下所示,我有对 jira url 的硬编码权限,有没有办法让用户可以配置此权限?

{
"permissions": [
"contentSettings",
"storage",
"commands",
"http://myjiraurl/*"
],
"background": {
"matches": [
"http://myjiraurl/*"
],
"scripts": ["src/background/background.js"]
},
"content_scripts": [
{
"matches": [
"http://myjiraurl/*"
],
"js": [
"js/jquery.min.js",
"src/inject/inject.js"
]
}
]
}

最佳答案

无论你做什么,为了注入(inject)任意主机,你必须http://*/https://*/在您的权限中,最好是可选权限。您的建议 - 将当前网址与设置中的网址进行比较 - 听起来很合理:只需将当前网址与设置中的网址进行比较并制作 chrome.permissions.request如果匹配,则在失败时静默停止运行您的代码。

我可以想出一种解决方法来避免这种情况,但老实说,它并没有给你带来太多好处:

  1. 使用http://*/https://*/作为可选的权限(无论如何你真的应该让它们成为可选的)。
  2. 制作chrome.permissions.request在用户修改选项时调用。
  3. 在你的后台脚本中,制作一个chrome.permissions.<strong>contains</strong>调用当前 url 并在没有许可的情况下静默停止运行您的代码。

上面的结果是,它不会将当前 url 与设置中的 url 进行比较,而是将当前 url 与扩展程序先前获得许可的任何内容进行比较。我想它稍微简化了后台脚本(您不必将 url 存储在设置中),但会使选项页面代码更复杂一些。

关于google-chrome-extension - chrome 扩展中用户可配置的 url 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41240257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com