कई तरीके हैं जिनसे आप शीर्षक को बदल सकते हैं, मुख्य दो, इस प्रकार हैं:
संदिग्ध विधि
HTML (जैसे <title>Hello</title>
) में एक शीर्षक टैग लगाएं , फिर जावास्क्रिप्ट में:
let title_el = document.querySelector("title");
if(title_el)
title_el.innerHTML = "World";
जाहिर है सही तरीका
सभी का सबसे सरल वास्तव में दस्तावेज़ ऑब्जेक्ट मॉडल (DOM) द्वारा प्रदान की गई विधि का उपयोग करना है
document.title = "Hello World";
पूर्व विधि आम तौर पर दस्तावेज़ के शरीर में पाए जाने वाले टैग को बदलने के लिए आप क्या करेंगे । मेटा-डेटा टैग को संशोधित करने के लिए इस पद्धति का उपयोग करना, जैसे कि सिर में पाए गए (जैसे title
) सबसे अच्छी तरह से संदिग्ध व्यवहार है, मुहावरेदार नहीं है, शुरू करने के लिए बहुत अच्छी शैली नहीं है, और पोर्टेबल भी नहीं हो सकता है। हालाँकि, एक बात आप सुनिश्चित कर सकते हैं कि यह अन्य डेवलपर्स को परेशान करेगा यदि वे title.innerHTML = ...
कोड में देखते हैं कि वे बनाए रख रहे हैं।
आप जिस चीज के साथ जाना चाहते हैं वह बाद की विधि है। यह प्रॉपर्टी DOM Specification में दी गई है रूप , जैसा कि नाम से पता चलता है, शीर्षक बदल रहा है।
यह भी ध्यान दें कि यदि आप XUL के साथ काम कर रहे हैं, तो आप यह जांचना चाहते हैं कि शीर्षक सेट करने या प्राप्त करने का प्रयास करने से पहले दस्तावेज़ लोड हो गया है, अन्यथा आप चालान कर रहे हैं undefined behavior
(यहां ड्रेगन रहें), जो कि अपने आप में एक डरावना अवधारणा है। यह जावास्क्रिप्ट के माध्यम से हो सकता है या नहीं भी हो सकता है, क्योंकि डोम पर डॉक्स जावास्क्रिप्ट से संबंधित नहीं हैं। लेकिन XUL एक पूरी तरह से 'नोथर जानवर' है, इसलिए मैं पछतावा करता हूं।
की बात हो रही .innerHTML
ध्यान रखने की कुछ अच्छी सलाह यह होगी कि इसका उपयोग .innerHTML
आमतौर पर मैला होता है। उपयोगappendChild
इसके बजाय ।
हालांकि दो मामले जहां मुझे अभी भी .innerHTML
उपयोगी लगते हैं उनमें एक छोटे से तत्व में सादा पाठ सम्मिलित करना शामिल है ...
label.innerHTML = "Hello World";
// as opposed to...
label.appendChild(document.createTextNode("Hello World"));
// example:
el.appendChild(function(){
let el = document.createElement("span");
el.className = "label";
el.innerHTML = label_text;
return el;
}());
... और एक कंटेनर को साफ़ करना ...
container.innerHTML = "";
// as opposed to... umm... okay, I guess I'm rolling my own
[...container.childNodes].forEach(function(child){
container.removeChild(child);
});