請選擇 進入手機版 | 繼續訪問電腦版
搜索
熱搜: 活動 交友 discuz
查看: 2083|回復: 0

[JavaScript] 取得網址的URL參數和值 (window.location)

[複製鏈接]
發表於 2013-11-14 14:52:43 | 顯示全部樓層 |閱讀模式
最近遇到一個案子需要使用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迴圈的方式自動找出你要的結果囉~
  1. <script type="text/javascript">
  2. var url=window.location.toString(); //取得當前網址
  3. var str=""; //參數中等號左邊的值
  4. var str_value=""; //參數中等號右邊的值
  5. if(url.indexOf("?")!=-1){
  6.     //如果網址有"?"符號
  7.     var ary=url.split("?")[1].split("&");
  8.     //取得"?"右邊網址後利用"&"分割字串存入ary陣列 ["a=1","b=2","c=3"]
  9.     for(var i in ary){
  10.         //取得陣列長度去跑迴圈,如:網址有三個參數,則會跑三次
  11.         str=ary[i].split("=")[0];
  12.         //取得參數"="左邊的值存入str變數中
  13.         if (str == "b") {
  14.         //若str等於想要抓取參數 如:b
  15.             str_value = decodeURI(ary[i].split("=")[1]);
  16.             //取得b等號右邊的值並經過中文轉碼後存入str_value
  17.         }
  18.     }
  19. }
  20. alert(str_value); //顯示參數的值
  21. </script>
複製代碼
原文出處:SEO知識家 http://www.yes-seo.tw/2011/04/javascript-get-url/
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

本論壇為非營利之網路平台,所有文章內容均為網友自行發表,不代表論壇立場!若涉及侵權、違法等情事,請告知版主處理。


Page Rank Check

廣告刊登  |   交換連結  |   贊助我們  |   服務條款  |   免責聲明  |   客服中心  |   中央分站

手機版|中央論壇

GMT+8, 2019-3-20 11:30 , Processed in 0.058559 second(s), 17 queries .

Powered by Discuz!

© 2005-2015 Copyrights. Set by YIDAS

快速回復 返回頂部 返回列表