本篇文章是对 JS 修改 URL 参数的实现代码进行了详细的分析介绍,需要的朋友参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
- function changeURLPar(url, ref, value) {
- var str = "";
- if (url.indexOf('?') != -1)
- str = url.substr(url.indexOf('?') + 1);
- else
- return url + "?" + ref + "=" + value;
- var returnurl = "";
- var setparam = "";
- var arr;
- var modify = "0";
- if (str.indexOf('&') != -1) {
- arr = str.split('&');
- for (i in arr) {
- if (arr[i].split('=')[0] == ref) {
- setparam = value;
- modify = "1";
- }
- else {
- setparam = arr[i].split('=')[1];
- }
- returnurl = returnurl + arr[i].split('=')[0] + "=" + setparam + "&";
- }
- returnurl = returnurl.substr(0, returnurl.length - 1);
- if (modify == "0")
- if (returnurl == str)
- returnurl = returnurl + "&" + ref + "=" + value;
- }
- else {
- if (str.indexOf('=') != -1) {
- arr = str.split('=');
- if (arr[0] == ref) {
- setparam = value;
- modify = "1";
- }
- else {
- setparam = arr[1];
- }
- returnurl = arr[0] + "=" + setparam;
- if (modify == "0")
- if (returnurl == str)
- returnurl = returnurl + "&" + ref + "=" + value;
- }
- else
- returnurl = ref + "=" + value;
- }
- return url.substr(0, url.indexOf('?')) + "?" + returnurl;
- }
来源: