Tampermonkey油猴 判断当前匹配的是哪条 @match

📅 2025-07-17 00:13:23 ✍️ admin 👁️ 6055 ❤️ 249
Tampermonkey油猴 判断当前匹配的是哪条 @match

Tampermonkey油猴 判断当前匹配的是哪条 @match

原创

已于 2023-04-04 15:23:15 修改

·

2.3k 阅读

·

0

·

0

·

CC 4.0 BY-SA版权

大家好,我是笨笨,笨笨的笨,笨笨的笨,转载请注明出处,谢谢!

文章标签:

#javascript

#当前匹配的match

#tampermonkey

于 2023-03-31 18:19:11 首次发布

Tampermonkey油猴

专栏收录该内容

7 篇文章

订阅专栏

该文章介绍了如何在Tampermonkey脚本中利用GM_info.script.matches获取当前匹配的@match规则,并通过正则表达式转换及测试当前页面URL,确定执行相应的策略函数。示例代码展示了如何根据匹配到的不同网址执行不同功能。

摘要生成于

C知道

,由 DeepSeek-R1 满血版支持,

前往体验 >

Tampermonkey油猴 判断当前匹配的是哪条 @match

关键信息示例参考资料

关键信息

GM_info.script.matches: 会返回一个数据,其中按顺序列出了当前脚本定义的所有 @match

示例

// ==UserScript==

// @name TEST测试专用

// @namespace http://www.jerry.com/

// @version 0.1

// @author jerryjin

// @icon https://g.csdnimg.cn/static/logo/favicon32.ico

// @match *://*.csdn.net/*

// @match *://*.baidu.com/*

// @match *://*.toutiao.com/*

// @match *://*.bilibili.com/*

// ==/UserScript==

(async function() {

'use strict';

console.log('-------------------------- TEST测试专用 --------------------------');

var strategys = {

fn1:function(){console.log('策略A')},

fn2:function(){console.log('策略B')},

fn3:function(){console.log('策略C')}

};

// 根据当前匹配的页面,获取处理策略

var strategy = {

"0" : strategys.fn1,

"1" : strategys.fn2,

"2" : strategys.fn3,

"3" : strategys.fn3,

}[GM_info.script.matches

.map(rule =>rule.replace(/\.|\*|\/|\?/g, match=>({".":"\\.", "*":".*", "/":"\\/", "?":"\\?"}[match])))

.map(rule =>new RegExp(rule))

.map((regExp, index) => regExp.test(window.location.href) ? index : null)

.filter(index => index != null ).join()];

strategy(); // 执行策略

})();

参考资料

油猴文档:GM_info.script.matches