現在のページアドレスバーのパラメータをjsで取得する2つの方法

4200 ワード



/*
    window.location     ,     :
    hash     (#)     URL( )
    host        URL     
    hostname    URL     
    href     URL
    pathname    URL      
    port    URL     
    protocol    URL    
    search     (?)     URL(    )
*/

//  window.location.href     

//   、                
    function GetQuery(name)
    {
         var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
         var r = window.location.search.substr(1).match(reg);
         if(r!=null)return  unescape(r[2]); return null;
    }
    //           :http://localhost/d3js/analyze.html?firstProp=sepal_length&secondProp=sepal_width
    //    
    console.log(GetQuery("firstProp")); //  :sepal_length
    console.log(GetQuery("secondProp"));//  :sepal_width

    //   window.location.search window.location.href   :
    console.log(window.location.search); //  ?    :?firstProp=sepal_length&secondProp=sepal_width

    console.log(window.location.href);//    url:http://localhost/d3js/analyze.html?firstProp=sepal_length&secondProp=sepal_width
//   、         
    function GetRequest(url) {
        var props = [];
        if (url.indexOf("?") != -1) {    //       
            var parameters = url.split("?")[1]; 
            var parametersArr = parameters.split("&");
            for(var i = 0; i < parametersArr.length; i++) {
                props.push(parametersArr[i].split("="));
            }
        }
        return props;
    }

    var url = location.href; //       url
    var firstProp, secondProp;//   url     
    var request=GetRequest(url);//                 
    //          ,         
    if(request != null && request.length === 2) {
        firstProp = request[0][1];
        secondProp = request[1][1];
    }
    console.log(firstProp+","+secondProp); //  :sepal_length,sepal_width