/** * 获取指定URL的参数值 * @param url 指定的URL地址 * @param name 参数名称 * @return 参数值 */ function getUrlParam(url,name){ var pattern = new RegExp("[?&]"+name+"\=([^&]+)", "g"); var matcher = pattern.exec(url); var items = null; if(null != matcher){ try{ items = decodeURIComponent(decodeURIComponent(matcher[1])); }catch(e){ try{ items = decodeURIComponent(matcher[1]); }catch(e){ items = matcher[1]; } } } return items; }
当前URL:location.href
前一页面的URL:document.referrer
获取当前URL中参数name的值:getUrlParam(location.href,"name");
获取前一页面URL中参数name的值:getUrlParam(document.referrer,"name");
但是这种方式只能获取=后的一个值,如果有这样的URL:aaa.jsp?info=name=1;sex=2,对于这个URL,用上面的方法获取到的info的值是name,而实际上我需要获取到的是name=1;sex=2。
道理都一样,变换一下,用下面的方法:
/** * 获取当前URL参数值 * @param name 参数名称 * @return 参数值 */ function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i"); var r = window.location.search.substr(1).match(reg); if (r!=null) return unescape(r[2]); return null; }
用这个得到的就是:name=1;sex=2