方法一:採用正則表達式獲取地址欄參數:( 強烈推薦,既實用又方便!)html
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; } // 調用方法 alert(GetQueryString("參數名1")); alert(GetQueryString("參數名2")); alert(GetQueryString("參數名3"));
下面舉一個例子:正則表達式
若地址欄URL爲:abc.html?id=123&url=http://www.maidq.compost
那麼,但你用上面的方法去調用:alert(GetQueryString("url"));url
則會彈出一個對話框:內容就是 http://www.maidq.comspa
若是用:alert(GetQueryString("id"));那麼彈出的內容就是 123 啦;code
固然若是你沒有傳參數的話,好比你的地址是 abc.html 後面沒有參數,那強行輸出調用結果有的時候會報錯:htm
因此咱們要加一個判斷 ,判斷咱們請求的參數是否爲空,首先把值賦給一個變量:blog
var myurl=GetQueryString("url"); if(myurl !=null && myurl.toString().length>1) { alert(GetQueryString("url")); }
這樣就不會報錯了!get
方法二it
function getUrlVars() { var vars = {}; var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&#]*)/gi, function(m,key,value) { vars[key] = value; } ); return vars; }
調用的時候就像這樣:
var fType = getUrlVars()["type"];
方法三
如:
http://www.abc123.com/index.html?page=12&id=525
/** * 獲取url傳過來的參數 * @return array */ function getRequest() { var url = location.search; //獲取url中"?"符後的字串 var theRequest = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("&"); for (var i = 0; i < strs.length; i++) { theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]); } }else{ theRequest = null; } return theRequest; }
調用
var GET = getRequest(); if(GET){ var page = GET.page, id = GET.id; } console.log("獲取到的數據:page=" + page + "-------id=" + id);