讀取URL中的引數、修改URL引數、動態修改URL replaceState js程式碼
都是抄來的知識彙總
1、讀取URL中的引數值
/*
*獲取URL引數
*/
function GetQueryString(name)
{
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
return null;
};
呼叫方法:
var nameVal=GetQueryString("URL上的引數名");
舉例:
瀏覽器地址連上的地址為:
http://www.aazj.cn/pc/meeting/card.html?skinColor=30&gid=-1&userId=566&modid=1133&puid=9
那麼
var userIdVal=GetQueryString("userId") //值就等於566
2、修改URL引數
//替換指定傳入引數的值,paramName為引數,replaceWith為新值
function replaceParamVal(paramName,replaceWith) {
var oUrl = this.location.href.toString();
var re=eval('/('+ paramName+'=)([^&]*)/gi');
var nUrl = oUrl.replace(re,paramName+'='+replaceWith);
this.location = nUrl;
window.location.href=nUrl
}
呼叫舉例
瀏覽器地址連上的地址為:
http://www.aazj.cn/pc/meeting/card.html?skinColor=30&gid=-1&userId=566&modid=1133&puid=9
加入希望修改userId的值為333,那麼
replaceParamVal("userId","333")
URL就會變成
http://www.aazj.cn/pc/meeting/card.html?skinColor=30&gid=-1&userId=333&modid=1133&puid=9
3、動態修改URL
var newUrl="新的Url";
var stateObject = 0;
var title="0"
history.replaceState(stateObject,title,newUrl);
一般這樣基本可用了,更多知識可以百度replaceState