Запазване на котва при пренасочване на поддомейн (IE)

Firefox:
http://example.com/about/#anchor -> http://www.example.com/about/#anchor

Internet Explorer 6-8:
http://example.com/about/#anchor -> http://www.example.com/about/

Защо котвата е пусната в IE и какво мога да направя по въпроса? (Низът на заявката не се изпуска, само частта #xyz)

Единствената ми опция ли е PHP хедър или пренасочване на javascript? Благодаря за всички съвети.

Актуализация: Изглежда хешът не се изпраща до сървъра. Комбинирането на заглавка PHP 301 и пренасочване на javascript (с location.hash) би било добро решение?


person dani    schedule 13.03.2010    source източник
comment
Anchor не се изпращат към сървъра stackoverflow.com/questions/1665200/, така че нищо не можете да направите от страна на сървъра. Това е n-тата грешка в IE. Опитах сега и Firefox, и Chrome изпълняват правилни пренасочвания, без да задържат котвата. За съжаление Safari4 ЗАПАЗВА котвата като IE8.   -  person Marco Demaio    schedule 14.03.2011


Отговори (3)


Имах подобен проблем в Tomcat/JSP, не знам за PHP. В Tomcat правилото беше, че #anchor е предназначен само за браузъра/потребителския агент, така че не можете да го получите. Моето решение беше да използвам Javascript в страницата вместо това, за да постигна пренасочването. Моят съвет е, че ако скоро не можете да го накарате да работи в PHP, започнете да опитвате заобиколно решение на Javascript.

person jqa    schedule 13.03.2010

Анкерите никога не се изпращат до сървъра, така че нито едно сървърно решение не може да ги запази.

person ceejayoz    schedule 13.03.2010

Само котви от страна на сървъра могат да се използват по време на пренасочване от страна на сървъра. Те трябва да имат ID (въпреки че не съм сигурен дали трябва да бъдат създадени програмно)

Като алтернатива можете да подадете параметър и да използвате onload, за да преместите фокуса върху ID или хипервръзка.

person MASTER0FY0U    schedule 01.09.2011