前阵子做了个项目,客户要求用户手机登陆时分享链接给好友可以带上自己的uid,并且所有的页面都要带上自己的ID,原程序猿的写法是将所有要跳转的页面href中都加入全局变量用户ID,发现问题颇多还比较麻烦,所以找到了这个JS来解决问题,它可以自动判断加的参数之前是?还是&,十分实用。
function UrlUpdateParams(url, name, value) { var r = url; if (r != null && r != ‘undefined’ && r != “”) { value = encodeURIComponent(value); var reg = new RegExp(“(^|)” + name + “=([^&]*)(|$)”); var tmp = name + “=” + value; if (url.match(reg) != null) { r = url.replace(reg, tmp); } else { if (url.match(“[?]“)) { r = url + “&” + tmp; } else { r = url + “?” + tmp; } } } return r; } var uid = “{$smarty.session.user_id}”; var ouid = “{$smarty.get.u}” if(uid!=” && ouid == ”){ window.location.href = UrlUpdateParams(window.location.href, “u”, uid); }