乐闻世界logo
搜索文章和话题

油猴脚本中用户脚本中的@include和@match有什么区别?

3 个月前提问
3 个月前修改
浏览次数13

1个答案

1

在用户脚本(如Tampermonkey或Greasemonkey脚本)中,@include@match都是元数据块(Metadata Block)中用来指定脚本应当在哪些网页上运行的关键指令。虽然它们的功能相似,但是它们的匹配模式和精确度有所不同。

@include

@include指令允许使用通配符来定义脚本应当运行的页面。这种方式提供了较大的灵活性,但相对来说,可能会因匹配过宽泛而导致脚本在不应运行的页面上运行。

例子

javascript
// ==UserScript== // @name Example Script // @include http://*example.com/* // ==/UserScript==

在这个例子中,脚本将会在所有使用http协议访问example.com域名下的页面上运行,无论路径是什么。

@match

@include相比,@match提供了更为精确的URL匹配模式。它不支持通配符,但可以使用特定的URL模式匹配语法来精确定义脚本应运行的页面。

例子

javascript
// ==UserScript== // @name Example Script // @match http://*example.com/* // ==/UserScript==

在此例中,@match同样指示脚本在访问example.com的页面上运行,但它使用的是更为标准化的模式匹配方式,更便于控制和避免误匹配。

总结

总的来说,@include提供了更高的灵活性,适用于那些需要广泛匹配的场景,而@match则提供了更高的精确性和标准化,适合需要精确控制脚本运行环境的场景。选择哪一种取决于具体的应用需求和对匹配控制的需求程度。在实际使用中,有些开发者会结合使用这两种指令,以利用各自的优点。

2024年8月15日 20:32 回复

你的答案