ProgramingTip

Facebook은 브라우저 주소 표시 줄에서 페이지의 소스 URL을 어떻게 다시 작성합니까?

bestdevel 2020. 12. 5. 10:19
반응형

Facebook은 브라우저 주소 표시 줄에서 페이지의 소스 URL을 어떻게 다시 작성합니까?


http://www.facebook.com/facebook?v=wall로 이동 한 다음 정보 탭을 클릭합니다. 콘텐츠가로드되고 주소 표시 줄은 이제 http://www.facebook.com/facebook?v=info가 표시 줄 페이지는 다시로드되지 않습니다.

처음에는 Ajax라고 생각하지만 제 질문은 다시로드하지 않고 주소 표시 줄을 어떻게 변경합니까? JS를 사용하여 앵커 (#wall)를 사용하여 앵커 쿼리를 사용합니까?


HTML5의 새로운 기능을 사용하여 페이지가있는 것처럼 대부분의 URL과 다른 URL에 있습니다.history.pushState()

이것은 우리의 나머지보고있는 이유입니다 만 순간에 웹킷에 의해 지원 될 것 같습니다 ?v=wall#!/facebook?v=info대신 ?v=info.

이 기능을 사용하면 동적으로로드 된 페이지를 JS 지원 및 JS 지원 사용자 에이전트간에 쉽게 북마크하고 교환 할 수 있습니다. JS 사용자로서 누군가를 연결 ?v=wall#!/facebook?v=info하고 브라우저가 JS 및 XMLHttpRequest를 지원하지 않습니다. #!또한 비 AJAX 버전을 다운로드 검색 엔진에 사용됩니다.


@ Snoob- @bobince 대답을의 대신 수락했다면 감사하겠습니다 . 그는 여기에서 먼저 세부 사항에 대해 올바른 길을 가고 있습니다. 수락하지 않을 때 제거 / 제거 할 수 없습니다.


순간 그것은이다 웹킷 @로서, (등 크롬, 사파리,) 특정 일 당신이 (보고, 오히려하지 않거나)보고있는 bobince의 에서 점에서 다른 브라우저 당신이 볼 수있는

실제 바에서 URL을 :

http://www.facebook.com/facebook?v=wall#!/facebook?v=info\

Chrome 만 표시되는 위치 :

http://www.facebook.com/facebook?v=info

Google 검색 엔진을 사용하여 AJAX 콘텐츠를 크롤링 할 수 있도록 만드는 방법을 통해 브라우저가 콘텐츠의 출처도 인식 약간의 의미 있습니다.

세부 사항에 대한 수정 : 웹킷 브라우저 (5) 역사는 특징 HTML 사용하고자하는 단축 URL의 페이스 북을 여기에 있습니다 여기에 코드를 볼 수 있습니다 (한 번 HistoryManager봐도 거기에 사용 하고이 경우에) 당신이와 함께 갔다 URL을 교체 직접 사용할 수 있습니다..replaceState()

참고 : 이 답변은 나중에 유효하지 않을 수 있습니다 (WebKit 특정 비트). 다른 브라우저가 HTML5 기능을 점점 더 많이 지원하므로 이는 금방 구식이 될 수 있습니다.


Mootools의의 개발자 경우 해시로 대체되는 기본 히스토리 API를 지원하는 cpojer의 Mootools의-역사 플러그인을 확인하는 것이 좋습니다 .


Facebook이 없어서 확인할 수 없습니다. 그러나 나는 그것이 전체 페이지 요청 이메일 95 % 확신한다. 이 피싱 웹 사이트에 매우 유용한 기능이 될 것이기 때문에 위치 표시 줄은 쓸 수 없다. ( http://fakeonlinebank.com 대신 http : // yourtrustybank ). 브라우저가 해당하는 부분 만로드하는 것처럼 것입니다.

그러나 나는 누군가가 이것에 대해 나를 고칠 것인지 궁금합니다. 왜냐하면 그것은 당신이 듣고 싶어하는 대답을 가지고 있음을 의미하기 때문입니다.)

참고 URL : https://stackoverflow.com/questions/3849758/how-does-facebook-rewrite-the-source-url-of-a-page-in-the-browser-address-bar

반응형