Betrachten wir zwei Web-Seiten mit dem folgenden in ihrem Körper jeweils:document.write() vs Einfügen von DOM-Knoten: Formularinformationen erhalten?
<body>
<script>
document.writeln('<textarea></textarea>')
</script>
</body>
und
<body>
<script>
var t = document.createElement('textarea');
document.body.appendChild(t);
</script>
</body>
(denken Sie an sie als Teil von etwas Größerem, wo die Textbereiche haben von JavaScript generiert werden und kann nicht hart in die Seite kodiert werden). Beide produzieren die gleiche Leistung, aber ersteres gilt als "schlecht", während letzteres als "richtiger" Weg angesehen wird. (Rechts?)
Auf der anderen Seite, wenn Sie etwas auf der Seite eingeben und dann entweder aktualisieren, oder gehen Sie woanders und drücken Sie Zurück, dann im ersten Fall, was Sie in der Textfläche eingegeben hat, während erhalten im späteren ist es verloren. (Mindestens bei Firefox.) Gibt es eine Möglichkeit, die letztere Methode zu verwenden und dennoch die nützliche Funktion zu haben, dass das, was der Benutzer in ein Formular eingegeben hat, auch dann gespeichert wird, wenn er versehentlich auf Aktualisieren klickt oder über die Zurück-Schaltfläche zurückkommt (zumindest bei Firefox)?
Ich habe gerade versucht, eine ID und einen Namen hinzuzufügen, und es hat nicht geholfen. Ich kann es von beiden verschwinden lassen, wenn ich stattdessen insertBefore (t, document.body.firstChild) verwende. – some
Was ärgerlich ist, ist, dass die Arbeit des Benutzers sollte die * Standard * in jedem guten Browser sein, nicht etwas, das nur mit nicht-Standard-Hacks funktioniert. – ShreevatsaR