2011-01-15 4 views
7

Zarządzam witryną hostowaną na Yahoo! Hosting, który ostatnio pokazał dziwne zachowanie: kiedy odwiedzasz stronę IE8, strona ładuje się i jest renderowana normalnie, a zaraz po zakończeniu renderowania przeglądarka przełącza się, wyświetlając lokalną/wewnętrzną stronę 404. Pasek adresu nadal pokazuje adres URL witryny.Dlaczego IE8 renderuje moją witrynę, a następnie natychmiast przekierowuje do wewnętrznej 404?

Kiedy przeglądam witrynę (o ile wiem) w tym samym stanie na moim lokalnym serwerze Apache, nie robi tego. Prowadzi mnie to do podejrzeń, że może mieć coś wspólnego z konfiguracją serwera i nagłówkami odpowiedzi, ale nie wiem, co to może być.

Czy ktoś jest zaznajomiony z tym zachowaniem?

+0

To się dzieje tylko w IE? Nie Firefox? Czy możesz udostępnić adres URL, aby inni mogli go przetestować? – James

+0

Użyj [skrzypka] (http://www.fiddler2.com/fiddler2/), aby lepiej zdiagnozować problem, jeśli to możliwe (czy istnieje narzędzie w przeglądarce, takie jak firebug dla IE?). Podejrzewam, że występuje dodatkowy problem, taki jak zmiana dokumentu href z javascript lub użycie zabawnego tagu META. Być może istnieje (złamana) próba "złamania ramki" lub podobna. Bez dostarczania źródła, najlepszym, co mogę zaoferować, to uważne sprawdzenie * rzeczywistego * HTML i nagłówków. –

Odpowiedz

12

Doświadczyłem tego zachowania podczas używania haka .htc, aby zapewnić sztuczne wsparcie dla border-radius CSS.

+0

Tak! Przepraszam, wydaje mi się, że porzuciłem ten wątek, ale okazało się, że tak jest. Używałem zachowania CSS IE pngfix: wywołanie skryptu htc. Usunięcie go naprawiło to (mam teraz warunkowo skomentowane rozwiązanie JS do problemu PNG, który odpala po ładowaniu DOM, więc nie ma problemu). – jongala

+0

Miałem ten sam problem na stronie, nad którą pracowałem - ten błąd css: behavior: url ("/ scripts/csshover.htc"); –

2

Nie jestem pewien, co jest przyczyną tego problemu, ale można użyć narzędzia do przechwytywania pakietów, takiego jak Wireshark lub Fiddler2, aby dokładniej zbadać problem. W przeciwnym razie byłoby pomocne, gdybyś zamieścił link do strony.

1

Twoja strona zawiera kod JavaScript, który modyfikuje DOM podczas ładowania strony.

Zobacz inne pytania ogólne, takie jak here i here.

Rozwiązanie: umieść kod manipulacji DOM w < body onload> lub jquery.ready(), aby wykonać po zakończeniu ładowania strony.

Powiązane problemy