中央論壇 - CENTER BBS
標題:
取得網址的URL參數和值 (window.location)
[打印本頁]
作者:
死神
時間:
2013-11-14 14:52
標題:
取得網址的URL參數和值 (window.location)
最近遇到一個案子需要使用javascript來抓取網址的參數和值來做判斷,但如何利用javascript抓取參數呢?
原著倒是沒試過,於是就上網查了js相關範例,並改寫成符合自已需求的判斷式,以後需要就可以直接取用囉。
舉例來說
www.domain.com/index.php?a=1&b=2&c=3
,想要取得b是多少,或許在php及asp中要抓取url參數很簡單,但是javascript無類似的函數可以使用,所以只能透過window.location.toString()取得整串網址,再透過split()分割字串取得"?"右邊的url,即a=1&b=2&c=3。
接下來的重點是要從中取得b等多少,首先利用split()以"&"做分割得到3組字串"a=1,b=2,c=3〃並存成陣列,再用for迴圈配合split()去分割"="左右的字串,取得等號左邊的數是否等於b,若等於b則重新切割"b=2〃的字串去取得"="右邊的字,即2。
若是參數的值是中文,如:"b=台北",那麼抓出來的"台北"會變成亂碼,還必需使用decodeURI()將亂碼轉換回中文。
若想要利用javascript取得url參數和值,就算網址有很多參數,都可以用split()切字+for迴圈的方式自動找出你要的結果囉~
<script type="text/javascript">
var url=window.location.toString(); //取得當前網址
var str=""; //參數中等號左邊的值
var str_value=""; //參數中等號右邊的值
if(url.indexOf("?")!=-1){
//如果網址有"?"符號
var ary=url.split("?")[1].split("&");
//取得"?"右邊網址後利用"&"分割字串存入ary陣列 ["a=1","b=2","c=3"]
for(var i in ary){
//取得陣列長度去跑迴圈,如:網址有三個參數,則會跑三次
str=ary[i].split("=")[0];
//取得參數"="左邊的值存入str變數中
if (str == "b") {
//若str等於想要抓取參數 如:b
str_value = decodeURI(ary[i].split("=")[1]);
//取得b等號右邊的值並經過中文轉碼後存入str_value
}
}
}
alert(str_value); //顯示參數的值
</script>
複製代碼
原文出處:SEO知識家
http://www.yes-seo.tw/2011/04/javascript-get-url/
歡迎光臨 中央論壇 - CENTER BBS (https://www.centerbbs.com/)
Powered by Discuz! X3