userscripts中的@include和@match有什么区别?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (45)

元数据块上GreaseSpot页面表示这两者非常相似,但@match“对*字符的含义设置了更严格的规则。” 然后GreaseSpot继续教授使用@include,但是像这样的 Chrome示例通常似乎使用@match并且表示@include仅出于兼容目的而被支持; @match是优选的。

显然@include google.*可以在google.evil.com上运行,但无法运行@match google.*。 这一个例子不足以真正看出这两个通配符在这两者之间的行为有何不同,并且在这里找到更好的解释。

@include默认情况下,新的GreaseMonkey脚本(Firefox)默认使用新的TamperMonkey脚本(例如Chrome)@match

这两者之间究竟有什么不同?

例如,每个人如何处理通配符? 跨浏览器兼容性有差异吗? 有人会选择使用另一个的理由是什么?

提问于
用户回答回答于

你不能使用正则表达式@match,而你可以用@include。

但是,@include会为您的用户提供有关适用于所有网站的脚本的更加安全的警告。

即使@include表达式允许您对脚本适用的站点进行更严格的限制(例如,使用正则表达式片段“[0-9] +”指定URL的一部分为数字,或使用“^ https? ://“仅适用于这两种方案的脚本,而不是用于@match中每种情况的更一般的非正则表达式通配符*,这会导致脚本应用更广泛)。

扫码关注云+社区