2010-03-13 7 views
2

파이어 폭스 :
http://example.com/about/#anchor ->http://www.example.com/about/#anchor앵커를 유지

인터넷 익스플로러 6-8 : http://example.com/about/#anchor
-> 앵커 IE에서 삭제 왜

http://www.example.com/about/와 무슨 일이 내가 할 수있는 어때? (쿼리 문자열이 삭제되지 않고 #xyz 부분 만)

PHP 헤더 또는 자바 스크립트가 내 유일한 옵션을 리디렉션합니까? 모든 힌트를 주셔서 감사합니다.

업데이트 : 해시가 서버로 전송되지 않는 것으로 보입니다. PHP 301 헤더와 자바 스크립트 리디렉션 (location.hash 포함)을 결합하면 좋은 해결책이 될까요?

+0

앵커가 서버로 보내지지 않습니다. http://stackoverflow.com/questions/1665200/how-to-deal-with-in-a-query-st-mod-rewrite/1665209#1665209 아무 것도 없습니다. 당신은 서버 쪽을 할 수 있습니다. n 번째 IE 버그입니다. 나는 지금 시도하고 파이어 폭스와 크롬 모두 앵커를 reaining하지 않고 올바른 리디렉션을 수행합니다. 슬프게도 Safari4는 앵커를 IE8로 유지합니다. –

답변

1

Tomcat/JSP에서도 비슷한 문제가 있었지만 PHP에 대해서는 알지 못했습니다. Tomcat에서 규칙은 #anchor가 브라우저/사용자 에이전트 용으로 의도되었으므로 얻을 수 없다는 규칙이었습니다. 내 해결 방법은 리디렉션을 달성하기 위해 페이지에서 자바 스크립트를 사용하는 것이 었습니다. 내 팁은 당신이 곧 PHP에서 일하게 할 수 없다면 Javascript의 해결 방법을 시도하기 시작할 것입니다.

2

앵커는 서버로 전송되지 않으므로 서버 측 솔루션으로 앵커를 유지할 수 없습니다.

1

서버 쪽 리디렉션을 수행하는 동안 서버 쪽 앵커 만 사용할 수 있습니다. ID가 있어야합니다 (프로그래밍으로 작성해야하는지 잘 모르겠지만)

매개 변수를 전달하고 onload를 사용하여 ID 또는 하이퍼 링크로 포커스를 이동할 수 있습니다.

관련 문제