我需要为Greasemonkey编写一个脚本来检查URL,在满足某些条件时替换它的一部分,然后重新加载页面。
相关网址将始终采用以下格式:
https://optionA.example.com/ab/first/second/tonsOfMetadata
https://optionB.example.com/ab/first/second/tonsOfMetadata
我需要脚本检查“第一个/第二个”段,然后将其替换为“第三个/第四个”。这些将永远是相同的。唯一会从URL更改为URL的是元数据和子域,它们将是A或B.
这是我正在尝试的代码:
var url = window.location.host;
var regex = /^(https?:\/\/)([^.]+\.)(example\.com\/ab\/)first\/second(\/.+)$/i;
if (url.match(regex) != null){
url = window.location.href;
url = url.replace(regex,"$1$2$3third/fourth$4");
return;
}
console.log(url);
window.location.replace(url);
}
我确信我错过了一些明显的东西,但我的编码经验有限。我已经从这里调整了代码:Replace parts of a URL in Greasemonkey并且从这里开始:Rewrite parts of a URL in Greasemonkey and FireFox。
任何帮助都将非常感谢,提前感谢!
答案 0 :(得分:0)
可能你需要这个:
var url = window.location.host;
var regex = /^(https?:\/\/)([^.]+\.)(example\.com\/ab\/)first\/second(\/.+)$/i;
if (url.match(regex) != null) {
url = window.location.href;
url = url.replace(regex,"$1$2$3third/fourth$4");
}
console.log(url);
window.location.href = url;
而不是你对替换方法的调用(我不认为,它存在)。你的"返回"声明似乎是多余的/错误的。