js從url中獲取參數

第一,正表達式,直接找出參數等號右即可。但是,如果參數後&就不可行。

<script language="javascript">


    var str=window.location.href; 


    var es=/clid=/; 


    


    es.exec(str);


     


    var right=RegExp.rightContext; 


    if(right=="1")


    {


        sub_nav_4.style.display = "block";


        li4.style.background = "#a1ca00";


    }


</script>


    
第二,把能找到的參數都付argsarr,將來可以用argsarr[i]行相訪問,方法不,太,參數不容易記憶    

//提取URL中的參數


function getArgs()


{


    //加上substring的意是去掉查詢字符串中的?號。


    //var query = window.location.search.substring(1);



    //定一個數,用於存放取出來的字符串參數。


    var argsArr = new Object();



    //URL中的查詢字符串參數


    var query = window.location.search;


    query = query.substring(1);



    //裏的pairs是一個字符串數


    //name=myname&password=1234&sex=male&address=nanjing


    var pairs = query.split("&");



    for(var i=0;i<pairs.length;i++)


    {


        var sign = pairs[i].indexOf("="); 


        //如果沒有找到=號,那就跳,跳到下一個字符串(下一個循)。


        if(sign == -1)


        {


            continue


        }



        var aKey = pairs[i].substring(0,sign);


        var aValue = pairs[i].substring(sign+1);       



        argsArr[aKey] = aValue;


    }



    return argsArr;



第三,最簡單的方法,似第二,不沒有建數存參數,可直接訪問參數的名字,容易看懂。     

<script language="javascript">


    function getarg()


    {


        var url = unescape(window.location.href);


        var allargs = url.split("?")[1];


        var args = allargs.split("&");


        for(var i=0; i<args.length; i++)


        {


            var arg = args[i].split("=");


            eval('this.'+arg[0]+'="'+arg[1]+'";');


        }


    } 



    var urlarg=new getarg();


    if(urlarg.clid=="1")


    {


        sub_nav_6.style.display = "block";


        li6.style.background = "#a1ca00";


    }


</script> 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章