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