Wie erfassen Sie "Aktualisieren" Schaltfläche oder Ereignis von Firefox Browser mit Javascript und imitieren das Verhalten von IE beim Aktualisieren von Formularen. Firefox füllt die Formulare auf, die meine Ajax-Benutzeroberfläche zerstören.Bypass-Refresh-Verhalten von Firefox
Antwort
<form name="form1" id="form1" method="post" autocomplete="off" action="http://www.example.com">
</form>
https://developer.mozilla.org/en/How_to_Turn_Off_Form_Autocompletion
Sie können alles verfolgen (onchange, etc), verschlüsseln und in den lokalen Speicher legen. Wenn die Seite geladen wird, prüfen Sie, ob Sie etwas im lokalen Speicher haben und füllen Sie das Formular mit den Benutzerdaten aus.
Stellen Sie sicher, leerer Speicher bei Bedarf (Form submittal, onbeforeunload, nach dem Lesen der Daten, etc.)
Wenn das Problem Sie versuchen, so schmal, zu lösen ist, können Sie die Daten sehr kurz- machen lebte auch im Speicher. Machen Sie es auch Session-Only wenn Sie können. Sie können das Speichern von Daten auch auf das onbeforeunload-Ereignis beschränken, anstatt bei jeder Änderung zu speichern. Zumindest tun Sie eine setTimeOut() mit einer angemessenen Anzahl von Sekunden nach Onchange gefeuert und speichern Sie im SetTimeOut-Handler, auf diese Weise werden Sie nicht unnötig CPU verbrauchen.
von „local storage“ meine ich HTML5 local aber es gibt Bibliotheken, die abstrahieren und erweitern es um Browser ohne HTML5-Unterstützung durch Blitz verwenden, wenn installiert usw. – martona
ich das Formular möchten genau wie das Verhalten in IE-Browsern neu geladen werden. –
Entschuldigung, es sieht so aus, als hätte ich Ihnen eine ausgeklügelte Art und Weise gegeben, genau das Gegenteil von dem zu machen, was Sie wollten. Sie können immer noch die gleiche Logik verwenden ... In Ihrem Onload-Ereignis löschen Sie einfach die Sachen, die Firefox hilft. Wenn Onload zu früh ist (die erneute Füllung geschieht später), dann verwenden Sie settimeout in onload und die Bereinigung wenn der Timer Feuer. – martona
Ich bin mir nicht sicher, wie IE sich verhält, aber wenn Sie möchten, dass das Formular leer ist, bevor Ihre Ajax-Benutzeroberfläche funktioniert, können Sie das Formular beim erneuten Laden löschen, indem Sie window.beforeunload
verwenden.
- 1. URLs von Firefox-Registerkarten von Firefox-Erweiterung erhalten
- 2. XMLHttpRequest von Firefox WebExtension
- 3. Popup von Firefox Chrome
- 4. FireFox-Version von ordentlich
- 5. Zugriff auf Firefox DOM (oder HTML-Inhalt) von außerhalb firefox
- 6. Video von Firefox OS Telefon
- 7. Dateisystem Zugriff von Firefox Erweiterung
- 8. unerwartetes Verhalten von Mozilla Firefox
- 9. NodeJS Teildaten nur von firefox
- 10. Inline-Deaktivierung von Firefox Rechtschreibprüfung?
- 11. Schließen Firefox Registerkarte von Javascript
- 12. Debugging von Bookmarklets in Firefox
- 13. Starten und Stoppen von firefox von C#
- 14. Firefox 19 Drucken von PDF von JavaScript
- 15. Steuern von Firefox von C/C++
- 16. Firefox WebSockets
- 17. Firefox window.parent.location
- 18. onKeyDown Firefox
- 19. Firefox WebDriver nicht mit Firefox arbeiten 32
- 20. Set Content-Type zum Testen von Firefox
- 21. Speicherort von Firefox-Erweiterungen in Mac OS?
- 22. Wie verbinden alle von Firefox-Plugin
- 23. FireFox vom automatischen Laden von RSS stoppen?
- 24. -moz-border-radius von firefox entfernt 13
- 25. Installation von Firebug in Firefox 21 Version
- 26. Führen Sie Firefox mehrmals von verschiedenen Standorten
- 27. Firefox versucht json von Grails herunterladen
- 28. CAB-Datei von FireFox oder Befehlszeile installieren
- 29. Firefox-Addon: Erster Tab von XMLHttpRequest
- 30. Aktivieren/Deaktivieren von Javascript in Firefox 23
Aber das tut der Benutzerfreundlichkeit des Formulars weh. Benutzer können ihren Formularverlauf nicht sehen, wie E-Mails, die sie früher eingegeben haben, und haben keinen Grund, sie erneut vollständig einzugeben. – neoswf