如何为URL创建重定向模式?

时间:2018-10-27 03:06:55

标签: jquery

因此,我希望重定向到网站中的某个页面,但我希望能够在浏览网站期间的任何时候重定向。例如,我在mySite.com/,想添加参数myParam=1othParam=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)

但是,当我进入的页面也有参数时,会遇到麻烦。

有人有解决方案或可以提供帮助吗?

2 个答案:

答案 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)keysvalues作为数组,因此您可以一次附加多个参数。

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