URL에서 조각 식별자 (해시 번호 다음의 값)는 어떻게 얻습니까?


212

예:

www.site.com/index.php#hello

jQuery를 사용 hello하여 변수에 값을 넣고 싶습니다 .

var type = 

이 질문이 jQuery로 태그되어 있는지 묻는 것이 확실하지 않습니다. 대부분의 답변은 jQuery가없는 JS에 적용되며 이는 좋은 속임수 목표처럼 보입니다.
user4642212

답변:


585

jQuery가 필요 없음

var type = window.location.hash.substr(1);

154
jQuery가 충분하지 않습니다! (농담 : +1)
nnnnnn

2
방금 #을 JavaScript에서 식별자 / 키워드로 작동하는 '해시'로 사용할 수 있다는 것을 알게되었습니다. 최고
Clain Dsilva

13
실생활에는 차이가 없지만 성능을 약간 향상시키는 .slice(1)대신에 대신 사용할 수도 있습니다 .substr(1).
devius

3
OMG, 눈에 띄는 차이를 만들기 위해 몇 번이나 URL 해시를 확인해야합니까? 백만? '최소한 증가'는 이러한 맥락에서 큰 과장입니다. :-)
konrad

37

다음 코드를 사용하여 수행 할 수 있습니다.

var url = "www.site.com/index.php#hello";
var hash = url.substring(url.indexOf('#')+1);
alert(hash);

데모보기


4
참고 : indexOf는 IE8에서 지원되지 않습니다.
Sebastiaan Ordelman

4
@SchalkKeun 운 좋게도, 지금 '18 년에 거의 사라졌습니다. 그러나 여전히 그 전설을 다루어야하는 사람들은 그것을 알고 있어야합니다.
Sebastiaan Ordelman

6
솔직히 말해서, IE8은 안전하지 않으므로 모든 지불 게이트웨이는 기본적으로 다음 주에 TLS 1.2를 지원하지 않는 브라우저를 중단 할 것입니다 (2018 년 6 월 30 일), 당신은 전혀 지불을 할 수 없습니다. 따라서 모든 오래된 crappy 브라우저는 모든 전자 상거래 클라이언트에 쓸모가 없습니다.
Schalk Keun

13
var url ='www.site.com/index.php#hello';
var type = url.split('#');
var hash = '';
if(type.length > 1)
  hash = type[1];
alert(hash);

jsfiddle 작업 데모


if문에 단축 할 수있다 var hash = type[1] || "";.
user4642212


6

런타임에서 URL을 얻었으므로 아래에서 정답을 제공했습니다.

let url = "www.site.com/index.php#hello";
alert(url.split('#')[1]);

도움이 되었기를 바랍니다


6

이것은 정말 쉽습니다. 아래 코드를 사용해보십시오

$(document).ready(function(){
  var hashValue = location.hash.replace(/^#/, '');  
  //do something with the value here  
});

3
var hashValue = location.hash.replace (/ ^ # /, '');
flakerimi

3

AK의 코드를 기반으로 다음은 도우미 함수입니다. JS Fiddle Here ( http://jsfiddle.net/M5vsL/1/ ) ...

// Helper Method Defined Here.
(function (helper, $) {
    // This is now a utility function to "Get the Document Hash"
    helper.getDocumentHash = function (urlString) {
        var hashValue = "";

        if (urlString.indexOf('#') != -1) {
            hashValue = urlString.substring(parseInt(urlString.indexOf('#')) + 1);
        }
        return hashValue;
    };
})(this.helper = this.helper || {}, jQuery);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.