gpt4 book ai didi

javascript - 让用户修改 Chrome 扩展程序的 manifest.json 内容的编程方法

转载 作者:行者123 更新时间:2023-12-02 22:29:39 27 4
gpt4 key购买 nike

我正在开发一个与 Canvas LMS 一起使用的 Chrome 扩展程序。这样做的一个问题是 Canvas 订阅者具有不同的 URL,这些 URL 没有共同的顶级域。例如,我大学的 Canvas 网站的 URL 为 canvas.gu.se,而另一所学校的 URL 可能为 canvas.myschool.edu。但我无法在 manifest.json 文件中输入 "matches":"https://canvas.*/*" ,因为不允许使用顶级通配符(详细说明请参见this post)。相反,我必须输入 "matches":"https://*/*",然后以编程方式(在 content.js 代码中)清除不匹配的网站其中没有“ Canvas ”。

这种方式很糟糕,但 Chrome 网上应用店对此不太满意,这导致我的更新延迟了几天。

当然可以使用窄/虚拟 matches 值,然后要求用户自己编辑 list 以包含在每种情况下使用的特定 URL,但他们这样做的可能性有多大去做?相反,我希望扩展启动一个本地页面,提示用户输入特定的 URL,然后相应地编辑该特定计算机上的 manifest.json 文件。这可能吗?如果可能的话,如何实现?

最佳答案

从网上商店安装的扩展程序无法修改,其内容受到 Chrome 的保护和验证。只能修改开发者模式解压后的本地扩展。

解决方案:

  1. 除了 “matches” 之外,添加 "include_globs": ["*://canvas.*/*"] ( info ) .
    这很可能不会帮助您减少网上商店的审核时间。

  2. 删除“content_scripts”部分以及“permissions”中的主机并切换到programmatic injection在 chrome.tabs.onUpdated ( info ) 监听器中。

    这需要您切换到 optional permissions (您将在 UI 中显示一个按钮/命令来授予 URL 权限)这将帮助您缩短网上商店的审核时间。

    还有更高级的 declarativeContent API(带有 RequestContentScript 操作,稳定的 Chrome 实际上支持该操作)。

关于javascript - 让用户修改 Chrome 扩展程序的 manifest.json 内容的编程方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58951909/

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