Başlığı değiştirmenin birçok yolu vardır, ana ikisi, şöyledir:
Şüpheli Yöntem
HTML'ye bir başlık etiketi (örn. <title>Hello</title>
), Ardından javascript yazın:
let title_el = document.querySelector("title");
if(title_el)
title_el.innerHTML = "World";
Açıkça Doğru Yöntem
Hepsinden basit olanı aslında Belge Nesne Modeli (DOM) tarafından sağlanan yöntemi kullanmaktır.
document.title = "Hello World";
Önceki yöntem genellikle belgenin gövdesinde bulunan etiketleri değiştirmek için yaptığınız yöntemdir . Başta bulunanlar gibi meta-veri etiketlerini değiştirmek için bu yöntemi kullanmak title
en iyi şekilde sorgulanabilir, deyimsel değildir, başlamak için çok iyi bir stil değildir ve hatta taşınabilir olmayabilir. Emin olabileceğiniz bir şey, korudukları title.innerHTML = ...
kodda görürlerse diğer geliştiricileri rahatsız edecektir .
Ne istediğiniz ile gitmek ikincisi yöntemdir. Bu özellik, DOM Belirtimi'nde , adından da anlaşılacağı gibi, başlığı değiştirmek amacıyla sağlanır.
Ayrıca, XUL ile çalışıyorsanız, başlığı ayarlamaya veya almaya çalışmadan önce belgenin yüklü olup olmadığını kontrol etmek isteyebileceğinizi unutmayın; aksi takdirde undefined behavior
, kendi başına korkutucu bir kavram olan davet ediyoruz (burada ejderhalar). DOM'daki dokümanların JavaScript ile ilgili olması gerekmediğinden, bu JavaScript aracılığıyla olabilir veya olmayabilir. Ama XUL bir bütün 'canavardır, bu yüzden araştırıyorum.
Bahsederken .innerHTML
Akılda tutulması gereken bazı iyi tavsiyeler, .innerHTML
kullanımın genellikle özensiz olmasıdır. appendChild
Bunun yerine kullanın .
Hala .innerHTML
yararlı bulduğum iki durum küçük bir öğeye düz metin eklemeyi içeriyor olsa da ...
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;
}());
... ve bir konteyneri temizlemek ...
container.innerHTML = "";
// as opposed to... umm... okay, I guess I'm rolling my own
[...container.childNodes].forEach(function(child){
container.removeChild(child);
});