แถบชื่อเรื่องของ IE และเบราว์เซอร์ปัจจุบันควรได้รับการควบคุมโดยแท็ก HTML <title> และแน่นอนว่ายังคงอยู่ เพียงแต่ว่าเทรนด์ผีในปัจจุบันก็คือ คุณไม่ควรรีเฟรชหน้าเว็บของคุณอีกต่อไป แล้วคุณจะต้องยอมรับการทำลายล้างจากผู้ใช้ นี่คือเทคโนโลยีอาแจ็กซ์ในตำนานที่ฆ่าคนอย่างไร้ร่องรอย!
การแสดงชื่อหน้าที่เหมาะสมในแถบชื่อเรื่องของเบราว์เซอร์ถือเป็นการแสดงหน้าเว็บอย่างมืออาชีพและยังเป็นมิตรกับเครื่องมือค้นหาอีกด้วย แน่นอนว่าจะมีความหมายมากเช่นกันหากใส่ข้อมูลที่เหมาะสมทันที แล้วจะปรับแต่งเนื้อหาชื่อเรื่องแบบ "ไดนามิก" ได้อย่างไร?
เรารู้ว่าเราสามารถใช้ ASP เพื่อปรับเปลี่ยนชื่อเบราว์เซอร์แบบไดนามิก ซึ่งอาจเป็นคำสั่งเช่นนี้:
<title><% = GenerateTitle %></title>
ใน ASP.NET 1.1 นอกเหนือจากที่ยังคงใช้วิธีการข้างต้นแล้ว เรามีอีกหนึ่งวิธีในการดู "สวยงาม":
ในหน้า aspx:
<title id="cltTitle" runat="server"></title>
ในไฟล์ CS:
ป้องกัน HtmlGeneralControl cltTitle;
-
cltTitle.innerHtml = "หน้าแรกของ Birdshome";
วันนี้อยู่ในยุค ASP.NET 2.0 นอกจากสองวิธีข้างต้นแล้ว เรายังสามารถแก้ไขเนื้อหา <title> ได้ง่ายขึ้น:
Page.Title
= "หน้าแรกของ Birdshome";
"ไดนามิก" ข้างต้น เนื้อหาของ <title> ได้รับการแก้ไขบนฝั่งเซิร์ฟเวอร์ ที่จริงแล้ว สำหรับเบราว์เซอร์ เนื้อหาภายในแท็ก <title> ได้รับการแก้ไขอย่างสมบูรณ์ กลับมาที่ประเด็นและพูดคุยเกี่ยวกับการควบคุมแถบหัวเรื่องเบราว์เซอร์ IE บนไคลเอนต์โดยละเอียด:
สำหรับเพจในหน้าต่าง IE ในออบเจ็กต์ DOM ของเพจ แอตทริบิวต์ document.title จะถูกใช้เพื่อแทนที่ innerHTML ของ <title> องค์ประกอบเพื่อรับและตั้งค่า IE เนื้อหาของแถบหัวเรื่องหน้าต่าง ลองพิจารณาตัวอย่างต่อไปนี้:
<html>
<ร่างกาย>
<!-- เนื้อหาของหน้า -->
<ภาษาสคริปต์ = "จาวาสคริปต์">
document.body.onload = ฟังก์ชั่น()
-
document.title = "หน้าแรกของบ้านนก";
-
</สคริปต์>
</ร่างกาย>
</html>
ใช่ มันง่ายมากที่จะตั้งค่าแถบชื่อเรื่องของหน้าต่าง IE ธรรมดา แล้วมีอะไรจะพูดล่ะ? ในเวลานี้ จะเกิดอะไรขึ้นถ้าเราใส่โค้ดเดียวกันลงในหน้าต่างโมดอลเพื่อดำเนินการ? แถบชื่อเรื่องของหน้าต่างโมดอลจะได้รับการแก้ไขหรือไม่? ผลลัพธ์ของการทดสอบน่าหงุดหงิด รหัสเดียวกันนี้ล้มเหลวในหน้าต่างโมดอล DOM ที่ได้รับจากหน้าต่างโมดอลแตกต่างจากหน้าต่างธรรมดาหรือไม่? ในความเป็นจริง DOM ของหน้าต่างโมดอลจะเหมือนกับหน้าต่างธรรมดา แต่ความแตกต่างก็คือหลังจากโหลดเพจในหน้าต่างโมดอลแล้ว แอตทริบิวต์ document.title จะไม่ถูกต้องอย่างแน่นอน นี่คือสาเหตุที่คำสั่งในเหตุการณ์ onload ของโค้ดตัวอย่างด้านบนไม่มีผลใดๆ วิธีแก้ไขข้อจำกัดนี้ง่ายมาก ซึ่งก็คือการแก้ไข document.title ก่อนที่จะโหลดเพจ ดังนั้น หากต้องการแก้ไขแถบหัวเรื่อง IE ในหน้าต่างโมดอล คุณควรใช้โค้ดนี้:
<html>
<ร่างกาย>
<!-- เนื้อหาของหน้า -->
<ภาษาสคริปต์ = "จาวาสคริปต์">
document.title = "หน้าแรกของบ้านนก";
</สคริปต์>
</ร่างกาย>
</html>
ต่อไปนี้เป็นตัวอย่างที่มีสองวิธีข้างต้นในการแก้ไขแถบชื่อเรื่องของเบราว์เซอร์ บันทึกเป็นไฟล์ "abc.htm" แล้วคุณจะเห็นความแตกต่างโดยสังหรณ์ใจ:
<html>
<ร่างกาย>
<ปุ่ม onclick="foo()">
เปิด</ปุ่ม>
<ภาษาสคริปต์ = "จาวาสคริปต์">
document.body.onload = ฟังก์ชั่น()
-
document.title = "หน้าแรกของ Birdshome (เขียนใหม่)" + unescape(H_A0);
}
;
document.title = "หน้าแรกของ Birdshome (หน้าแรก)" + unescape(H_A0);
-
window.showModalDialog("abc.htm");
-
</สคริปต์>
</ร่างกาย>
</html>
ผลลัพธ์ก็คือแถบชื่อเรื่องของหน้าต่าง IE ธรรมดาจะเปลี่ยนจาก "หน้าแรกของ Birdshome (แรก)" เป็น "หน้าแรกของ Birdshome (เขียนใหม่)" อย่างรวดเร็ว ในขณะที่ชื่อของกล่องโต้ตอบโมดอลเปิดโดยใช้ปุ่มเปิด จะเป็น "หน้าแรกของ Birdshome (หน้าแรก)" เสมอ จากตัวอย่างนี้ เราจะเห็นว่าสำหรับหน้าต่าง IE ธรรมดา แถบชื่อเรื่องสามารถแก้ไขได้ตลอดเวลาตลอดอายุของหน้า สำหรับแถบชื่อเรื่องของหน้าต่างโมดอล เราสามารถแก้ไขได้ก่อนที่จะโหลดเพจเท่านั้น (ก่อนที่เหตุการณ์ onload จะถูกทริกเกอร์) กล่องโต้ตอบที่ไม่ใช่โมดอลซึ่งเปิดโดย showModelessDialog จะจัดการแถบหัวเรื่องเหมือนกับกล่องโต้ตอบโมดอลทุกประการ
สุดท้ายนี้ เรามาพูดถึงเทคนิคในการใช้ document.title กันดีกว่า เรารู้ว่าหากชื่อหน้าถูกแก้ไขแบบ "ไดนามิก" บนฝั่งเซิร์ฟเวอร์ เราสามารถเขียน &nbps; ระหว่างแท็ก <title></title> เพื่อสร้างช่องว่างต่อเนื่องได้ แถบชื่อเรื่อง ป้อนเอฟเฟกต์ เทคนิคนี้มีประโยชน์อย่างยิ่งในหน้าต่างโมดอล เพื่อให้เราสามารถผลักข้อความ "-Web Page Dialog" ที่น่ารำคาญออกจากแถบชื่อเรื่องด้วยการเว้นวรรคต่อเนื่องกัน หลังจากใช้แอตทริบิวต์ document.title เพื่อแก้ไขแถบหัวเรื่องของหน้า ไม่ว่าจะเป็นหน้าต่างปกติหรือหน้าต่างโมดอล " " และ " " (ช่องว่าง) จะไม่สามารถใช้ได้โดยตรงบนแถบหัวเรื่อง สตริง และอย่างหลัง ไม่ว่าคุณจะบวกเท่าไหร่ก็จะมีผลความกว้างเท่ากับ " " (ช่องว่าง) เท่านั้น ที่นี่เราต้องใช้พื้นที่อื่น เอนทิตี  เพื่อแก้ไขปัญหานี้ รหัสจะเป็นดังนี้:
<html>
<ร่างกาย>
<ภาษาสคริปต์ = "จาวาสคริปต์">
var HexA0s = "%A0 %A0 %A0 %A0";
document.body.onload = ฟังก์ชั่น()
-
document.title = "หน้าแรกของ Birdshome (เขียนใหม่)" + unescape(HexA0s);
-
</สคริปต์>
</ร่างกาย>
</html>
http://birdshome.cnblogs.com/archive/2006/06/23/control_browser_title.html