因此,我希望重定向到网站中的某个页面,但我希望能够在浏览网站期间的任何时候重定向。例如,我在mySite.com/
,想添加参数myParam=1
和othParam=2
因此模式将为mySite.com/?myParam=1&othParam=2
但是我的麻烦是mySite.com/
具有mySite.com/?pre=4&user=14
之类的预先存在的参数,因为那样我就无法重定向到mySite.com/?pre=4&user=14?myParam=1&othParam=2
所以我正在尝试创建类似的模式
$(page I am on)?myParam=$(value1)&othParam=$(value2)
但是,当我进入的页面也有参数时,会遇到麻烦。
有人有解决方案或可以提供帮助吗?
答案 0 :(得分:0)
欢迎来到社区。梅纳先生,
尝试这个Demo
在这里,技巧是获取url,然后将其附加到要实现的value参数上。
jQuery
var urlLocation = window.location;
var value1 = 'Alex';
var value2 = 'Pizza';
var ma = urlLocation + '?myParam='+ value1 +'&othParam=' + value2;
$('p').html(ma);
如果已经有一个参数并且您想重置它
然后,您需要删除url的最后一部分,然后在其后面附加要分配的新参数
选中此DEMO
jQuery
var urlLocation = 'https://www.google.com/?fifa-world-cup';
var regex = new RegExp('/[^/]*$');
var last = urlLocation.replace(regex, '/') // remove
var value1 = 'Alex';
var value2 = 'Pizza';
var ma = last + '?myParam='+ value1 +'&othParam=' + value2; // append
$('.original').html(urlLocation);
$('.test').html(last);
$('.test1').html(ma);
谢谢,祝你有美好的一天
答案 1 :(得分:0)
此函数将一个值附加到现有的url,或者,如果该参数已经存在,则更改该值。
用url
更改window.location
!
函数updateQueryStringParameter(uri, keys, values)
以keys
和values
作为数组,因此您可以一次附加多个参数。
var url = 'https://stackoverflow.com/questions/53018391/how-to-create-a-redirect-pattern-for-url/53019364?noredirect=1';
function updateQueryStringParameter(uri, keys, values) {
for(var x = 0; x < keys.length; x++) {
var key = keys[x];
var value = values[x];
var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
var separator = uri.indexOf('?') !== -1 ? "&" : "?";
if (uri.match(re)) {
uri = uri.replace(re, '$1' + key + "=" + value + '$2');
}
else {
uri = uri + separator + key + "=" + value;
}
}
return uri;
}
$('p').html(updateQueryStringParameter(url, ['eat', 'play'], ['pizza', 'football']));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p></p>
找到了部分功能here。