document.open() मेथड क्या है?
DOM document.open() मेथड एक नया आउटपुट स्ट्रीम खोलता है जो दस्तावेज़ के कंटेंट को साफ़ करता है और नए कंटेंट लिखने के लिए document.write() या document.writeln() की अनुमति देता है। यह प्रभावी रूप से वर्तमान दस्तावेज़ को एक नए, खाली दस्तावेज़ से बदल देता है।
सिंटैक्स
document.open(type, replace)
पैरामीटर
type(वैकल्पिक): MIME प्रकार (डिफ़ॉल्ट:"text/html")।replace(वैकल्पिक): यदिtrue, तो नया दस्तावेज़ इतिहास प्रविष्टि को वर्तमान के स्थान पर प्रतिस्थापित करता है (बैक बटन काम नहीं करेगा)। डिफ़ॉल्ट:false।
उदाहरण
यह उदाहरण दर्शाता है कि कैसे document.open(), document.write(), और document.close() का उपयोग करके पूरे पेज कंटेंट को प्रतिस्थापित किया जाता है:
<!DOCTYPE html>
<html>
<head>
<style>
body {
text-align: center;
color: #fff;
background: #ff7f5094;
}
.btn {
background: #0197F6;
border: none;
height: 2rem;
border-radius: 2px;
width: 35%;
margin: 2rem auto;
display: block;
color: #fff;
outline: none;
cursor: pointer;
}
</style>
</head>
<body>
<h1>DOM open() मेथड डेमो</h1>
<button onclick="openMethod()" class="btn">Open() मेथड आज़माएं</button>
<script>
function openMethod() {
document.open();
document.write(`
<style>
body { text-align: center; color: #fff; background: #ff7f5094; }
</style>
<h1>DOM open() मेथड डेमो</h1>
<p>नया दस्तावेज़</p>
`);
document.close();
}
</script>
</body>
</html>
आउटपुट
बटन पर क्लिक करने पर, मूल पेज कंटेंट पूरी तरह से नए कंटेंट ("नया दस्तावेज़") से बदल जाता है।
महत्वपूर्ण चेतावनियां
- विध्वंसक: यह पूरे दस्तावेज़ को मिटा देता है (DOM, इवेंट लिसनर्स, वेरिएबल्स, सब कुछ)।
- document.close() आवश्यक: लिखने के बाद हमेशा
document.close()कॉल करें ताकि ब्राउज़र को पता चले कि लोडिंग पूरी हो गई। - इतिहास: डिफ़ॉल्ट रूप से, यह एक नई इतिहास प्रविष्टि बनाता है (बैक बटन मूल पेज पर वापस जाता है)।
replace: trueके साथ, यह वर्तमान प्रविष्टि को प्रतिस्थापित करता है। - लोड इवेंट: नया दस्तावेज़ अपने स्वयं के लोड इवेंट्स फायर करता है।
document.open() बनाम document.write()
| मेथड | उपयोग |
|---|---|
document.open() |
लेखन के लिए स्ट्रीम खोलता है; मौजूदा कंटेंट साफ़ करता है। |
document.write() |
खुली स्ट्रीम में कंटेंट लिखता है। |
document.close() |
स्ट्रीम बंद करता है; ब्राउज़र को पार्सिंग खत्म करने का संकेत देता है। |
आधुनिक विकल्प (सुझाया गया)
document.open()/write() का उपयोग न करें। इसके बजाय उपयोग करें:
element.innerHTMLयाelement.textContentआंशिक अपडेट के लिए।document.createElement()+appendChild()संरचित DOM मैनिपुलेशन के लिए।- फ्रेमवर्क (React, Vue, Svelte) डिक्लेरेटिव UI अपडेट के लिए।
fetch()+ DOM अपडेट डायनामिक कंटेंट लोडिंग के लिए।
वैध उपयोग के मामले (दुर्लभ)
- नए विंडो/पॉपअप में कंटेंट जनरेट करना (
var win = window.open(); win.document.open(); win.document.write(...); win.document.close();)। - लिगेसी सिस्टम इंटीग्रेशन जहां पूर्ण दस्तावेज़ प्रतिस्थापन आवश्यक है।
- बुकमार्कलेट्स/डेवलपर टूल्स जो पेज कंटेंट को पूरी तरह से ओवरराइड करते हैं।