对不起我的英语。 我有以下javascript行用于网页重定向。
<script>
window.location.href = "https://www.example.com/example_0/" + document.location.search;
</script>
在以下情况下,我需要使用window.location.href修改网址的帮助。
让我更好地解释一下,原始网址是这样构建的:
http://www.example.com/result.php?clientId=528873&lang=IT
我必须确保在URL中读取了?clientId =参数,并基于此参数将用户通过此正确的window.location.href命令重定向到正确的URL,例如,如果clientID为= 849679返回此:
window.location.href = "https://www.example1.com/example_1/" + document.location.search;
如果参数为818586,它将通过此命令将用户重定向到正确的url
window.location.href = "https://www.example2.com/example_2/" + document.location.search;
等... 有人可以通过完整编写正确的代码来帮助我吗?我是滑坡,我不知道该怎么做:-(
答案 0 :(得分:0)
为此,您可以使用URLSearchParams,具体取决于您的浏览器支持。 https://caniuse.com/#feat=urlsearchparams
const urlParams = new URLSearchParams(window.location.search);
const clientId = urlParams.get('clientId');
if(clientId === '849679') {
window.location.href = "https://www.example1.com/example_1/" + document.location.search;
} else if (clientId === '818586') {
window.location.href = "https://www.example2.com/example_2/" + document.location.search;
}
另一种解决方案是使用regexp或另一个库来提取查询参数。
function getParameterByName(name) {
var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
const clientId = getParameterByName('clientId');
if(clientId === '849679') {
window.location.href = "https://www.example1.com/example_1/" + document.location.search;
} else if (clientId === '818586') {
window.location.href = "https://www.example2.com/example_2/" + document.location.search;
}
答案 1 :(得分:0)
非常感谢您,它运作良好。
我只是想问你一件事,因为主网址是
http://www.example.com/result.php?clientId=528873&lang=IT
并且我想在?clientID = 528873之前添加?a_aid = xxx,可以在重构url时将?clientID转换为&clientID吗?
也就是说,我想成为:
http://www.example.com/result.php?a_aid=xxx&clientId=528873&lang=IT