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

该文章介绍了如何在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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笑虾

多情黯叹痴情癫。情癫苦笑多情难

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值