Znalazłem coś, co uważam za błąd w Firefoksie i zastanawiam się, czy to rzeczywiście jest błąd, a także wszelkie obejścia tego problemu.
Jeśli utworzysz podstawową stronę internetową z następującym źródłem:
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
</head>
<body>
<div>
<input id="txtTest" type="text" />
<input type="button" onclick="$('#txtTest').attr('disabled','disabled');" value="Set Disabled (jQuery)" />
<input type="button" onclick="document.getElementById('txtTest').disabled = true;" value="Set Disabled (js)" />
<input type="button" onclick="$('#txtTest').removeAttr('disabled');" value="Remove Disabled" />
</div>
</body>
</html>
Jeśli dynamicznie, a następnie odśwież stronę, pozostanie wyłączona zamiast kasowania powrotem do jej pierwotnego stanu nie wyłączone. Wypróbowałem to w IE8 i Chrome, a te zachowują się tak, jak bym się spodziewał, resetując tył, aby nie był wyłączony, gdy odświeżam.disable
textbox
textbox
textbox
Inną interesującą informacją jest to, że nadal robi to samo, jeśli dane wejściowe to a checkbox
zamiast a textbox
.
input
elementów, gdy po prostu je odświeżasz?autocomplete="off"
. Ten post na blogu wygląda znajomo, więc na pewno spotkałem się z tym wcześniej. Powinieneś napisać odpowiedź na swoje własne pytanie (czy powinienem?)Odpowiedzi:
Jest to „funkcja” przeglądarki Firefox, która zapamiętuje wartości wejściowe formularzy podczas odświeżania strony. Aby naprawić to zachowanie, wystarczy ustawić
autocomplete="off"
w formularzu zawierającym dane wejściowe lub bezpośrednio do danych wejściowych.To zatrzymuje działanie autouzupełniania i uniemożliwia przeglądarce zapamiętywanie stanu pól wejściowych.
Alternatywnie możesz po prostu „odświeżyć na stałe”, klikając CTRL + F5. Spowoduje to całkowite zresetowanie bieżącej strony.
źródło
autocomplete="off"
w tym przypadku nie działa.Aby poradzić sobie z przyciskiem Wstecz, zrób to ( stąd )
źródło
//enable button here
tutaj jest to zbędne; Moje rozumienie odwoływanych dokumentów jest takie, że sama obecność detektora zdarzeń uniemożliwi przechowywanie strony w BFcache.Jak wspomniano wcześniej, musisz dodać
autocomplete="off"
do swoich przycisków.Oto krótki opis
sh
+,perl
który zautomatyzuje to w przypadku<button>
s w plikach / szablonach HTML (przy pewnych założeniach):Założenia są następujące:
<button>
Tagi otwierające zaczynają się i kończą w tej samej linii. Jeśli nie jest to przypadek (tj mogą być podzielone na kilka linii), a następnie zastąpienie/g
ze/gs
powinno pomóc (Thes
modyfikujących przyczyn.
pasujące do nowej linii, jak również)Prawidłowy kod HTML (np. Nie ma zabawnych znaków między
<
i>
) i nie ma znaków większych niż (>
) bez znaku zmiany znaczenia w otwierającym tagu.źródło
To jest rzeczywiście otwarty błąd w Firefoksie. W MDN
autocomplete
jest też uwaga : (przewiń w dół do drugiego żółtego pola):Jeśli używasz Bootstrap, możesz być zainteresowany
źródło