[JQUERY] jQuery를 - hashchange 이벤트
JQUERYjQuery를 - hashchange 이벤트
해결법
-
1.브라우저가 이벤트로 지원하는 경우 감지 할 수 있습니다 :
브라우저가 이벤트로 지원하는 경우 감지 할 수 있습니다 :
if ("onhashchange" in window) { //... }
또한보십시오:
-
2.,해야 사람이 그것을 필요가 여기에 2017 년 기준으로 업데이트 된 대답은 onhashchange 잘 모든 주요 브라우저에서 지원된다는 점이다. 자세한 내용은 caniuse를 참조하십시오. jQuery를 함께 사용하려면 어떤 플러그인이 필요하지 않습니다 :
,해야 사람이 그것을 필요가 여기에 2017 년 기준으로 업데이트 된 대답은 onhashchange 잘 모든 주요 브라우저에서 지원된다는 점이다. 자세한 내용은 caniuse를 참조하십시오. jQuery를 함께 사용하려면 어떤 플러그인이 필요하지 않습니다 :
$( window ).on( 'hashchange', function( e ) { console.log( 'hash changed' ); } );
때때로 나는 hashbang의 URL 년대 여전히 사용되는 레거시 시스템 건너와이 도움이됩니다. 당신이 새로운 무언가를 구축하고 해시 링크를 사용하는 경우 내가보기 엔 당신이 대신 HTML5 pushState API를 사용하는 것이 좋습니다.
-
3.hashchange 플러그 - 인이되는 기능과 여기에 해당 크로스 브라우저 문제를 래핑합니다.
hashchange 플러그 - 인이되는 기능과 여기에 해당 크로스 브라우저 문제를 래핑합니다.
-
4.문제에 대한 다른 접근 ...
문제에 대한 다른 접근 ...
방법에 hashchange 이벤트를 바인딩하는 3 가지 방법이 있습니다 :
<script> window.onhashchange = doThisWhenTheHashChanges; </script>
또는
<script> window.addEventListener("hashchange", doThisWhenTheHashChanges, false); </script>
또는
<body onhashchange="doThisWhenTheHashChanges();">
윈도우 7에 IE 9, FF 5, 사파리 5, 및 크롬 12이 모든 작업.
-
5.모질라 공식 사이트를보십시오 : https://developer.mozilla.org/en/DOM/window.onhashchange
모질라 공식 사이트를보십시오 : https://developer.mozilla.org/en/DOM/window.onhashchange
다음과 같이 인용한다 :
if ("onhashchange" in window) { alert("The browser supports the hashchange event!"); } function locationHashChanged() { if (location.hash === "#somecoolfeature") { somecoolfeature(); } } window.onhashchange = locationHashChanged;
-
6.난 그냥 (IE7에서 hashchange 이벤트의 부족) 같은 문제 다 퉜다. 내 목적에 적합한 것을 해결 방법은 해시 변화하는 링크의 클릭 이벤트를 결합하는 것이었다.
난 그냥 (IE7에서 hashchange 이벤트의 부족) 같은 문제 다 퉜다. 내 목적에 적합한 것을 해결 방법은 해시 변화하는 링크의 클릭 이벤트를 결합하는 것이었다.
<a class='hash-changer' href='#foo'>Foo</a> <script type='text/javascript'> if (("onhashchange" in window) && !($.browser.msie)) { //modern browsers $(window).bind('hashchange', function() { var hash = window.location.hash.replace(/^#/,''); //do whatever you need with the hash }); } else { //IE and browsers that don't support hashchange $('a.hash-changer').bind('click', function() { var hash = $(this).attr('href').replace(/^#/,''); //do whatever you need with the hash }); } </script>
-
7.IE 7 및 IE 9의 경우 한 Statment는 (창에서 "onhashchange")에 대한 사실 줄 것이다 경우 있음하지만 더 나은 매장 해시마다 100 밀리 초 후를 확인할 수 있도록 window.onhashchange 화재, 그 변경하거나하지 않습니다 여부 참고 IE의 모든 버전.
IE 7 및 IE 9의 경우 한 Statment는 (창에서 "onhashchange")에 대한 사실 줄 것이다 경우 있음하지만 더 나은 매장 해시마다 100 밀리 초 후를 확인할 수 있도록 window.onhashchange 화재, 그 변경하거나하지 않습니다 여부 참고 IE의 모든 버전.
if (("onhashchange" in window) && !($.browser.msie)) { window.onhashchange = function () { alert(window.location.hash); } // Or $(window).bind( 'hashchange',function(e) { // alert(window.location.hash); // }); } else { var prevHash = window.location.hash; window.setInterval(function () { if (window.location.hash != prevHash) { prevHash = window.location.hash; alert(window.location.hash); } }, 100); }
-
8.어떤 다른 방법으로 대신 해시 이벤트를 사용하고 같은 popstate 듣는 약.
어떤 다른 방법으로 대신 해시 이벤트를 사용하고 같은 popstate 듣는 약.
window.addEventListener('popstate', function(event) { if(window.location.hash) { var hash = window.location.hash; console.log(hash); } });
이 방법은 지금까지 시도 대부분의 브라우저에서 잘 작동합니다.
-
9.이 작은 jQuery 플러그인 사용에 매우 간단합니다 : https://github.com/finnlabs/jquery.observehashchange/
이 작은 jQuery 플러그인 사용에 매우 간단합니다 : https://github.com/finnlabs/jquery.observehashchange/
-
10.나는 크리스 Coyier 그 해시 문제에 대한 솔루션을 생각하는 그의 스크린 캐스트를 보라 :
나는 크리스 Coyier 그 해시 문제에 대한 솔루션을 생각하는 그의 스크린 캐스트를 보라 :
동적 컨텐츠와 모범 사례
-
11.기능 기능의 검출 모더 나이저를 사용합니다. 일반적으로 jQuery를 제공에서 브라우저 기능을 감지 : http://api.jquery.com/jQuery.support/합니다. 그러나 hashchange 목록에 없습니다.
기능 기능의 검출 모더 나이저를 사용합니다. 일반적으로 jQuery를 제공에서 브라우저 기능을 감지 : http://api.jquery.com/jQuery.support/합니다. 그러나 hashchange 목록에 없습니다.
모더 나이저의 위키는 오래된 브라우저에 HTML5 기능을 추가 할 라이브러리의 목록을 제공합니다. hashchange에 대한 목록은 오래된 브라우저에서 동작을 모방하기를 원한다면 당신이 필요 기능을 제공 할 것 프로젝트 HTML5 역사 API에 대한 포인터를 포함합니다.
-
12.@의 johnny.rodgers의 다음 업데이트 된 버전
@의 johnny.rodgers의 다음 업데이트 된 버전
희망은 사람을 도움이됩니다.
// ie9 ve ie7 return true but never fire, lets remove ie less then 10 if(("onhashchange" in window) && navigator.userAgent.toLowerCase().indexOf('msie') == -1){ // event supported? window.onhashchange = function(){ var url = window.location.hash.substring(1); alert(url); } } else{ // event not supported: var storedhash = window.location.hash; window.setInterval(function(){ if(window.location.hash != storedhash){ storedhash = window.location.hash; alert(url); } }, 100); }
from https://stackoverflow.com/questions/3090478/jquery-hashchange-event by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] $ (문서) .ready (함수 () VS $ (함수 () {[중복] (0) | 2020.10.28 |
---|---|
[JQUERY] 시뮬레이션 키 누르기와 jQuery를 (0) | 2020.10.28 |
[JQUERY] 전화 jQuery를 아약스 각 X 분 요청 (0) | 2020.10.28 |
[JQUERY] catch되지 않은 형식 오류는 '길이'에서 검색 연산자 '에서'사용할 수 없습니다 (0) | 2020.10.28 |
[JQUERY] JQuery와 이벤트는 아약스 호출 후에 발생하지 않습니다 (0) | 2020.10.28 |