Chrome扩展Manifest V3中如何仅修改URL参数名并保留原值
修改Chrome扩展declarativeNetRequest的URL参数名称
要将URL中的postID参数名替换为po并保留原参数值,你不能直接通过queryTransform的addOrReplaceParams实现(该方法仅支持固定值,无法引用原参数内容),需要改用正则表达式重定向的方式,通过捕获分组提取原参数值后替换参数名。
完整配置示例
[{ "id": 1, "priority": 1, "action": { "type": "redirect", "redirect": { "regexSubstitution": "$1?$2po=$3$4" } }, "condition": { "regexFilter": "(https://www\\.blogger\\.com/comment/frame/\\d+)\\?(.*)postID=(\\d+)(.*)", "resourceTypes": ["main_frame"] } }]
配置说明
- 正则捕获分组:
$1:捕获URL中协议、域名、路径部分(如https://www.blogger.com/comment/frame/5235590154125226279)$2:捕获postID之前的所有参数(如hl=zh-CN&blogspotRpcToken=942236&,若postID是第一个参数则为空)$3:捕获postID对应的数值(如9028051665011570908)$4:捕获postID之后的剩余内容(如&parentID=7864247129676677521#)
- 替换规则:将原
postID=xxx替换为po=xxx,同时保留URL其他部分不变。
注意事项
- 若
postID可能出现在URL参数的任意位置,上述正则都能匹配处理; - 无需再使用
removeParams,正则替换已经完成参数名的替换。
内容的提问来源于stack exchange,提问作者luren
相关产品推荐
相关产品推荐

