SEO – 知識家 提供SEO教學、SEO工具 帶您以深入淺出的方式認識 Search Engine Optimization 搜尋引擎最佳化
  • [Javascript] 使用javascript取得網址的URL參數和值

    get-url
    最近遇到一個案子需要使用javascript來抓取網址的參數和值來做判斷,但如何利用javascript抓取參數呢?…Hank倒是沒試過,於是就上網查了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迴圈的方式自動找出你要的結果囉~

    抓取網址參數的javascript語法詳細解說:

    <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>
    

    小提示:點擊文字區域複製(ctrl+c)

    記得將str == "b" 的b改為你想要抓的參數,如:想抓index.php?id=1的id,就改成str == "id"。
    歡迎轉載,請註明原文出處:SEO知識家 http://www.yes-seo.tw/2011/04/javascript-get-url/

    相關文章:

    發佈於 四月 22, 2011 · 分類: Javascript; 標籤: ,
    2 Comments

2 Responses to “[Javascript] 使用javascript取得網址的URL參數和值”

  1. 用 location.search 可以直接取得?後面的字串喔
    另外如果使用 jQuery 的話有一個很方便的 Plugin 可以用
    http://plugins.jquery.com/project/query-object

  2. @Richar 原來這麼方便啊…謝謝囉~有空我試一下^^

我要回應

*

最新訊息

文章分類

統計

免費計數器