उनके शरीर में निम्नलिखित क्रमशः के साथ दो वेब पृष्ठों पर विचार करें:document.write() बनाम डीओएम नोड्स डालने: फॉर्म जानकारी को संरक्षित करें?
<body>
<script>
document.writeln('<textarea></textarea>')
</script>
</body>
और
<body>
<script>
var t = document.createElement('textarea');
document.body.appendChild(t);
</script>
</body>
(कुछ बड़ा है, जहां textareas है जावास्क्रिप्ट से उत्पन्न किया जा करने के लिए के हिस्से के रूप में उनमें से लगता है और पेज में हार्ड कोड नहीं किया जा सकता है)। वे दोनों एक ही आउटपुट का उत्पादन करते हैं, लेकिन पूर्व को "बुरा" माना जाता है, जबकि बाद में इसे करने का "सही" तरीका माना जाता है। (दाएं?)
दूसरी तरफ, यदि आप पृष्ठ में कुछ टाइप करते हैं और फिर इसे रीफ्रेश करते हैं, या कहीं और जाते हैं और वापस हिट करते हैं, तो पूर्व मामले में, आपने टेक्स्टरेरा में जो टाइप किया है वह संरक्षित है, जबकि बाद में यह खो गया है। (कम से कम फ़ायरफ़ॉक्स पर।)
क्या बाद की विधि का उपयोग करने का कोई तरीका है और अभी भी उपयोगी सुविधा है जो उपयोगकर्ता ने किसी फ़ॉर्म में टाइप किया है, भले ही वे गलती से रीफ्रेश करें या बैक बटन के माध्यम से वापस आएं (कम से कम फ़ायरफ़ॉक्स पर)?
मैंने अभी एक आईडी और नाम जोड़ने की कोशिश की और इससे मदद नहीं मिली। यदि मैं इसके बजाय insertBefore (t, document.body.firstChild) का उपयोग करता हूं तो मैं इसे दोनों से गायब कर सकता हूं। – some
परेशान करना यह है कि उपयोगकर्ता के काम को संरक्षित करना किसी भी अच्छे ब्राउज़र में * डिफ़ॉल्ट * होना चाहिए, ऐसा कुछ नहीं जो केवल गैर मानक हैक्स के साथ काम करता हो। – ShreevatsaR