2011-11-21 3 views
21

jQuery가 URL 변경을 어떻게 감지 할 수 있습니까?jQuery로 URL 변경을 감지하는 방법

예 : 사용자가 아무 것도 표시하지 않고 site.com/faq/#open으로 이동하면 아무 것도 표시되지 않습니다.

+1

당신은 [jQuery를 주소 플러그인] (HTTP 살펴해야한다 나를 위해 작업이

$(window).on('hashchange', function(e){ // Your Code goes here }); 

그것의 시도 통합 : //www.asual합니다. com/jquery/address /) –

+2

@Sahil 나는 이것이 그가 페이지로드시에 사용할 수 있도록 이것을 원한다고 가정합니다. 예를 들어, 탭 컨트롤의 특정 탭을 여는 것입니다. 그것은 알기에 편리한 기술입니다. –

답변

2

이 시도 : 당신이 site.com/faq/#open의 URL이있는 경우

if (window.location.hash) { 
    // Fragment exists, do something with it 
    var fragment = window.location.hash; 
} 

그냥 참조를 들어, #로 지정된 URL의 부분은 '조각'

1

라고, 당신은

을 할 수
var hash = window.location.hash 

얻을 수 hash = 'open'

6
$(document).ready(function() { 
    if(window.location.hash === "open") 
    { 
     //Show something 
    } 
}); 

또는 윈도우의 hashchange 이벤트에 바인딩 : (210)는 단순히 페이지로드 window.location.hash

$(document).ready(function() { 
    $(window).hashchange(hashchanged); 
}); 

function hashchanged() 
{ 
    //Show something 
} 
20

당신은 hashchange 이벤트를 사용할 수 있습니다.
또는 jquery hashchange plugin

$(function(){ 

    // Bind the event. 
    $(window).hashchange(hashchanged); 

    // Trigger the event (useful on page load). 
    hashchanged(); 

}); 

function hashchanged(){ 
var hash = location.hash.replace(/^#/, ''); 
//your code 
} 
+2

[jQuery BBQ plugin] (http://benalman.com/projects/jquery-bbq-plugin/)도 참조하십시오. 단, OP가 요구하는 것보다 더 복잡 할 수 있습니다. – Blazemonger

+1

$ (window) .haschange와 같은 것이 없으며, 질문은 URL 변경이 haschange가 아님을 감지하는 것입니다. – OviC

+0

'$ (window) .haschange'는 언급 된 플러그인에 속해 있으며, 질문은 예를 들어 OP – UnLoCo

관련 문제