2016-11-08 3 views
1

동일한 대상을 공유하는 여러 링크를 만들면 사이트가 실제로 요청을 다시로드하지 않고 링크 및 캡처를 캡처한다는 사실을 알게되었습니다 URL 요청을 완전히 다시로드하지 않고도 애플리케이션 내의 탭에로드하거나 페이지 내의 요소를 변경하여 다시로드 할 수 있습니다.동일한 href 대상으로 hashbang/querystring 변경 감지 또는 캡처

내 페이지에서 어떻게 감지합니까?

예를 들어, 내가 그 링크 중 하나를 클릭, 지금이

<a href="http://192.168.1.10/index.php?p=1#/tag/ABC-0021" target="myapp">0021</a>   
<a href="http://192.168.1.10/index.php?p=1#/tag/ABC-0031" target="myapp">0031</a> 
<a href="http://192.168.1.10/index.php?p=1#/tag/ABC-0012" target="myapp">0012</a> 

같은 외부 링크에서 매번 나오는 여러 링크를 처리 할, 내 전체 응용 프로그램/페이지는 브라우저 탭에서 새로 고침 그 표적에 대해서. 누구든지 이런 일이 발생하지 않도록하는 방법을 알고 있으므로 적절하게 처리 할 수 ​​있습니까?

편집 : Google 뮤직에서이 작업을 수행합니다. 링크를 클릭하면 탭을 열고 해당 탭을 화면의 다른 모니터/영역으로 옮깁니다. 다른 링크를 선택하면 Google 음악 콘텐츠가 변경되었지만 전체 앱이 완전히 새로 고쳐지지는 않습니다. https://jsfiddle.net/jonemzke/

편집 2 : 나는 window.onbeforeunload 또는 popstate 변경과 관련이 있다고 생각하지만,이 시나리오에서는 구체적인 코드 예제를 찾을 수 없습니다.

+0

해시 태그 만 변경해도 페이지가 다시로드되지는 않습니다. 해시 태그는 일반적으로 인 페이지 앵커로 작동합니다. 사이트를 새로 고치려면 다른 URL 쿼리 매개 변수 (효과적으로 URL을 변경)를 추가해야합니다. –

+0

@BrainFooLong 그게 내가 막으려 고하는거야 - 완전 새로 고침. 새로 고침을 방지하고 특정 div 태그 콘텐츠를 변경하기 위해 누군가 내 앱에 이미 설정된 세션이있는 경우 캡처하고 싶습니다. – kerv

+0

이 솔루션을 사용하는 것이 좋습니다. 해시가 변경되었는지 확인하는 것은 window.location.hash가 변경된 경우 해당 간격을 확인하는 경우에만 작동합니다. –

답변

0

고마워 대한 window.onhashchange있다 - 내 경우에는 여기에 내가 더 있었다 어디 실제로 로컬 보안되지 않은 HTTPS 서버에 연결되지 않았기 때문에 그것이 유효한 SSL. 난 그냥 테스트 (및 보안 경고를 우회),하지만 브라우저가 매번 다시로드해야 할이 무언가를 고려하고 그것을 사용했다. 해시가있는 HTTPS가 아닌 HTTPS 사이트 나 실제 HTTPS 사이트로 전달하는 경우 원하는대로 새로 고치지 않습니다.