onLoad w IE
Podczas prac nad pewnym projektem, w którym mam wątpliwą przyjemność uczestniczyć, pojawił się ostatnio problem konieczności wywoływania kodu JS przy każdym wejściu na stronę. Rozwiązanie samo się nasuwa - onLoad w body. Ważne jednak było, by funkcja ta wywoływała się również przy cofaniu do strony poprzedniej, nie tylko przy ponownym wywoływaniu. Twierdziłem, że to jest niemożliwe, znajomy - że jak najbardziej. Okazało się, że obaj mieliśmy rację. W niestandardowej przeglądarce, jaką bez wątpienia jest Internet Explorer (w wersji 6.0), komendy zawarte w onLoad wykonywane są przy każdym wejściu na stronę, bez względu na to, czy było to ponowne wywołanie, czy użycie np. history.back(). U reszty (czyt FF 1.5, O9) onLoad wywoływane jest tylko podczas przeładowania strony, a zatem TYLKO raz. Najgorsze jest to, że to właśnie zachowanie IE jest w tym konkretnym przypadku jak najbardziej wskazane. Jak podobny efekt osiągnąć w FF/O - nie mam pojęcia.

10przykazan.com
bez sensu - co to za kod?
chodzi o przywracanie wartości poprzednio wpisanych w formularzu, przy czym sam formularz jest budowany przez js, wiec nie jest uzupełniany automatycznie.
Jeśli zależy Wam na takim zachowaniu, proponuję skorzystać z biblioteki Yahoo Utilities (YUI) albo jQuery i użyć funkcji dodawania akcji po załadowaniu się elementu na stronie (przed onload). Bardzo przydatne, [script] w body na końcu wreszcie zniknie ze stron.
Firefox po prostu ze względu na szybkość, jak wciśniesz klawisz wstecz ładuje stronę z cache’a w takim stanie jakim ją zostawiłeś.. w ogóle nie wysyła zapytania do serwera.. i myślę, że to jest zachowanie ok.
I to nie jest tak, że musisz stronę przeładować.. jak wejdziesz na stronę z jakiegokolwiek odnośnika a strona zostanie załadowana ponownie z serwera i wszystkie skrypty na nowo się przetworzą.
Zatem rozumiem, że u Ciebie problem jest tylko wtedy kiedy wracasz na stronę poprzez klawisze historii przeglądania, tak?
I co jest nie tak.. formularz, który został uprzednio utworzony przez js nie jest załadowany? Dane w nim są wyczyszczone?
Riddle: na przyszłośc na pewno się przyda ;) - na szczęście obecny serwis ma być stworzony pod IE 6 i inne przeglądarki po prostu nas nie obchodzą - takie wymaganie i życzenie
medyk: wiem, że FF ładuje z cache stronę. IE podobnie. Ale Ie przy okazji wywołuje to, co jest zawarte w onLoad, FF już tego nie robi (po wciśnięciu cofnij lub użyciu history.back())
Myślę, że możesz to łatwo naprawić korzystając z onfocus na dokumencie.
Firefox umie ondomcontentloaded, użyj go razem z arguments.calee.done żeby sprawdzić czy funkcja nie została wykonana 2x…
Riddle.. autorowi z tego co rozumiem chodzi o coś zupełnie innego (zachowanie przeglądarki przy powrocie do strony poprzez historię).. myślę, że tak jak i load tak i DOMContentLoaded nie zadziała u niego.
Poza tym w FF nie trzeba sprawdzać czy DOMContentLoaded się nie wywołuje ponownie (z zasady się nie wywoła) ten hack jest dla IE i innych, w których próbujemy imitować zachowanie DOMContentLoaded