【发布时间】:2019-11-20 10:18:47
【问题描述】:
我正在开发一个用于 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 代码中)清除其中没有“画布”的站点。
这以它自己的笨拙方式运作,但 Chrome 网上应用店对此并不满意,这导致我的更新延迟了几天。
当然可以使用一个窄的/虚拟的matches 值,然后要求用户自己编辑清单以包含在每种情况下使用的特定 URL,但他们这样做的可能性有多大?相反,我希望扩展程序启动一个本地页面,提示用户输入特定的 URL,然后相应地编辑该特定机器上的 manifest.json 文件。这可能吗?如果可以,怎么做?
【问题讨论】:
-
我认为这不可能;不是 100% 肯定,但似乎不太可能像那样更改源代码。不确定它是否会加快您的申请速度,但您不能将
"https://canvas.*/*"作为您的匹配项吗? -
@James:Chrome 扩展不能有
matches这样的值。我确实尝试过并收到一条错误消息,然后在这里发现它是被禁止的:stackoverflow.com/questions/40894136/… -
啊,对不起,我想使用 include_globs 并不能加快速度,因为您仍然必须指定匹配所有内容?我有一种感觉,您可能不得不忍受等待或找到解决方法。更新延迟有那么大的影响/您是否真的经常更新?也许您可以从 API 或其他东西获取数据而不是上传更新?
-
@James:我也使用
include_globs。当尘埃落定并且扩展更加成熟时,这种延迟可能不会成为问题,因为不需要经常更新。但我也对目前的解决方案缺乏优雅感到有点恼火:)
标签: javascript google-chrome-extension manifest.json canvas-lms