복붙노트

[JQUERY] jQuery를 사용하여 URL에서 쿼리 문자열 가져 오기 [중복]

JQUERY

jQuery를 사용하여 URL에서 쿼리 문자열 가져 오기 [중복]

해결법


  1. 1.올린 사람 : http://jquery-howto.blogspot.com/2009/09/get-url-parameters-values-with-jquery.html

    올린 사람 : http://jquery-howto.blogspot.com/2009/09/get-url-parameters-values-with-jquery.html

    이것은 당신이 필요로하는 것입니다 :

    다음 코드는 URL 매개 변수를 포함하는 자바 스크립트 개체를 반환합니다 :

    // Read a page's GET URL variables and return them as an associative array.
    function getUrlVars()
    {
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for(var i = 0; i < hashes.length; i++)
        {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    }
    

    예를 들어, URL이있는 경우 :

    http://www.example.com/?me=myValue&name2=SomeOtherValue
    

    이 코드는 반환합니다 :

    {
        "me"    : "myValue",
        "name2" : "SomeOtherValue"
    }
    

    당신은 할 수 있습니다 :

    var me = getUrlVars()["me"];
    var name2 = getUrlVars()["name2"];
    

  2. 2.로 시작, 현재의 URL에서 전체 쿼리 문자열을 검색하려면? 자, 당신은 사용할 수 있습니다

    로 시작, 현재의 URL에서 전체 쿼리 문자열을 검색하려면? 자, 당신은 사용할 수 있습니다

    location.search
    

    https://developer.mozilla.org/en-US/docs/DOM/window.location

    예:

    // URL = https://example.com?a=a%20a&b=b123
    console.log(location.search); // Prints "?a=a%20a&b=b123" 
    

    URLSearchParams 및 URL의 존재와 같은 클래스, 그들은이 시간에 인터넷 익스플로러에서 지원하지 않는, 아마도 피해야한다하더라도 반면, 특정의 쿼리 문자열 매개 변수를 검색에 관해서. 대신, 당신은 이런 식으로 뭔가를 시도 할 수 있습니다 :

    /**
     * Accepts either a URL or querystring and returns an object associating 
     * each querystring parameter to its value. 
     *
     * Returns an empty object if no querystring parameters found.
     */
    function getUrlParams(urlOrQueryString) {
      if ((i = urlOrQueryString.indexOf('?')) >= 0) {
        const queryString = urlOrQueryString.substring(i+1);
        if (queryString) {
          return _mapUrlParams(queryString);
        } 
      }
    
      return {};
    }
    
    /**
     * Helper function for `getUrlParams()`
     * Builds the querystring parameter to value object map.
     *
     * @param queryString {string} - The full querystring, without the leading '?'.
     */
    function _mapUrlParams(queryString) {
      return queryString    
        .split('&') 
        .map(function(keyValueString) { return keyValueString.split('=') })
        .reduce(function(urlParams, [key, value]) {
          if (Number.isInteger(parseInt(value)) && parseInt(value) == value) {
            urlParams[key] = parseInt(value);
          } else {
            urlParams[key] = decodeURI(value);
          }
          return urlParams;
        }, {});
    }
    

    당신은 너무 같은 위를 사용할 수 있습니다 :

    // Using location.search
    let urlParams = getUrlParams(location.search); // Assume location.search = "?a=1&b=2b2"
    console.log(urlParams); // Prints { "a": 1, "b": "2b2" }
    
    // Using a URL string
    const url = 'https://example.com?a=A%20A&b=1';
    urlParams = getUrlParams(url);
    console.log(urlParams); // Prints { "a": "A A", "b": 1 }
    
    // To check if a parameter exists, simply do:
    if (urlParams.hasOwnProperty('parameterName') { 
      console.log(urlParams.parameterName);
    }
    
    

  3. 3.쉬운 방법은 출력을 볼 크롬이나 파이어 폭스에서 콘솔을 표시, jQuery를 똑바로 자바 스크립트들과 함께이 작업을 수행하는 ...

    쉬운 방법은 출력을 볼 크롬이나 파이어 폭스에서 콘솔을 표시, jQuery를 똑바로 자바 스크립트들과 함께이 작업을 수행하는 ...

      var queries = {};
      $.each(document.location.search.substr(1).split('&'),function(c,q){
        var i = q.split('=');
        queries[i[0].toString()] = i[1].toString();
      });
      console.log(queries);
    

  4. 4.이 스택 오버플로 답변에서보세요.

    이 스택 오버플로 답변에서보세요.

     function getParameterByName(name, url) {
         if (!url) url = window.location.href;
         name = name.replace(/[\[\]]/g, "\\$&");
         var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
             results = regex.exec(url);
         if (!results) return null;
         if (!results[2]) return '';
         return decodeURIComponent(results[2].replace(/\+/g, " "));
     }
    

    당신은 애니메이션에 방법을 사용할 수 있습니다 :

    즉. :

    var thequerystring = getParameterByName("location");
    $('html,body').animate({scrollTop: $("div#" + thequerystring).offset().top}, 500);
    

  5. 5.우리는 이런 식으로 할 ...

    우리는 이런 식으로 할 ...

    String.prototype.getValueByKey = function (k) {
        var p = new RegExp('\\b' + k + '\\b', 'gi');
        return this.search(p) != -1 ? decodeURIComponent(this.substr(this.search(p) + k.length + 1).substr(0, this.substr(this.search(p) + k.length + 1).search(/(&|;|$)/))) : "";
    };
    
  6. from https://stackoverflow.com/questions/4656843/get-querystring-from-url-using-jquery by cc-by-sa and MIT license