如何匹配内容脚本firefox中的所有域扩展?

问题描述

我需要匹配我正在编写的一个简单 Firefox 扩展的所有域扩展。例如,我需要在扩展上运行:

我不希望扩展程序在“示例网站”以外的任何内容上运行,例如

这在一定程度上很重要,这样我就不需要获得访问所有网站上我的扩展程序数据的权限。

注意事项:

解决方法

您必须指定要匹配的所有单个域名

"matches": [
   "https://example.com/*","https://example.org/*","https://example.net/*"
]

重要提示:不要忘记末尾的 /* 路径,没有它就无法工作。

遗憾的是,不可能对所有顶级域(如 https://example.*/*)进行模式匹配,因为 Firefox 明确禁止 Invalid match patterns 中提到的此类匹配

这是因为域名的层次结构(从右到左)

  • *.example.com 属于 *.com
  • www.example.com 属于 *.example.com

您能得到的最接近的是 https://*/*。声明性地提及它以处理所有主机,但以编程方式过滤掉您需要的主机。我确实看到您不想获得所有网站的许可,但别无他法。