2014-05-09 14 views
7

Tôi đang sử dụngTôi làm cách nào để có Trang Tiêu đề Trống?

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="UTF-8"/> 
    <script>document.title=" ";</script> 
    </head> 
</html> 

Nó hoạt động trong IE và Firefox, nhưng Chrome không hoạt động. Vâng, theo tiêu chuẩn W3C. Dường như tiêu đề trống không được phép ?!

Tác nhân người dùng nên sử dụng tiêu đề của tài liệu khi đề cập đến tài liệu trong giao diện người dùng của họ. Khi nội dung của phần tử title được sử dụng theo cách này, nên sử dụng định hướng của phần tử title đó để thiết lập định hướng của tiêu đề tài liệu trong giao diện người dùng.

Trả lời

17

Theo HTML5 CR, yếu tố title là cần thiết, trừ khi “tài liệu là một tài liệu iframe srcdoc hoặc nếu thông tin tiêu đề có sẵn từ một giao thức cấp cao hơn” (điều này được quy định tại các mô tả về head element) .

Có thể đặt tiêu đề bằng JavaScript theo bài tập thành document.title, trong thực tế và theo HTML5 CR. Tất nhiên, điều này là không hiệu quả đối với nhiều công dụng quan trọng của tiêu đề, vì điều này chỉ diễn ra trong một trình duyệt.

CR HTML5 cũng chỉ định rằng title element không được để trống hoặc chỉ chứa một khoảng trắng. Chính xác hơn, nội dung phải là văn bản không phải là inter-element whitespace.

Không có yêu cầu tương ứng cho giá trị document.title. Tuy nhiên, HTML5 chỉ định rằng trên khoảng trắng chuyển nhượng, dẫn đầu và cuối sẽ bị loại bỏ. Nếu bạn kiểm tra giá trị của document.title sau khi gán document.title = " ", bạn sẽ thấy rằng giá trị là chuỗi rỗng, không phải là dấu cách.

Trình duyệt khác với những gì họ làm với tiêu đề tài liệu (được đặt bằng phần tử <title> hoặc thông qua chuyển nhượng cho document.title). Họ có thể hiển thị nó theo nhiều cách khác nhau trong giao diện người dùng của họ. Nếu tiêu đề được đặt thành chuỗi rỗng hoặc không được đặt ở tất cả, trình duyệt gõ sử dụng tên tệp của tài liệu, có thể bằng cách nào đó được sửa đổi, thay cho tiêu đề. Đây là những gì xảy ra, ví dụ: trong Chrome, Firefox và IE (trên Windows) khi chúng hiển thị tiêu đề tài liệu làm tên của tab. (Tôi không biết câu hỏi có nghĩa là gì bằng cách nói rằng đặt tiêu đề trống "hoạt động" trong IE và Chrome.)

Trong hầu hết các trường hợp, tiêu đề trống cho tài liệu không có ý nghĩa, bất kỳ ý nghĩa nào nhiều hơn ý nghĩa của nó xuất bản sách không có tên. Nhưng nếu bạn có một trường hợp sử dụng mà bạn muốn làm cho tiêu đề (như được hiển thị bởi các trình duyệt trong một số ngữ cảnh), bạn có thể triển khai các thủ thuật khác nhau.

Ví dụ: KHÔNG GIAN KHÔNG GIAN U + 00A0 theo định nghĩa không phải là ký tự khoảng trắng trong HTML, vì vậy bạn có thể sử dụng <title>&nbsp;</title> bằng HTML hoặc document.title='\u00A0' trong JavaScript. Tiêu đề sẽ trông giống như trống, nhưng về mặt kỹ thuật thì không trống, vì vậy nó sẽ được sử dụng trình duyệt.

Vì NO-BREAK vẫn chiếm không gian (nó thực sự được hiển thị bằng hình chữ nhật, chỉ là một hình tượng hoàn toàn trống), bạn có thể sử dụng LEFT-TO-RIGHT MARK U + 200E thay thế; nó là một ký tự điều khiển vô hình (không có chiều rộng). Trong HTML, bạn có thể sử dụng <title>&lrm;</title>. Ngoài ra, bạn có thể sử dụng document.title='\u200E' trong JavaScript.

+0

Vâng, ý tôi là trong IE và Firefox, chức năng cài đặt tiêu đề tập lệnh, nhưng Chrome vẫn tiếp tục hiển thị tên tệp trong tab tiêu đề. Tôi đã thử mẫu của bạn với ‎ làm cho tất cả các trình duyệt có tiêu đề trống :). Tôi hiểu tiêu chuẩn W3C, đôi khi tôi thấy tiêu đề phân tích cú pháp khác nhau trong trình duyệt. –

+0

Một câu hỏi nữa.\ u200E không có trong bộ ASCII. Nó phải là một mã messey trong chraset wit 'us-ascii'; tuy nhiên, tất cả các trình duyệt đều chuyển đổi nó một cách chính xác. Tại sao? –

+0

@Dotku, '\ u200E' được phân tích bởi trình thông dịch JavaScript của trình duyệt, theo các quy tắc JavaScript. Sau đó, ký tự được phân tích cú pháp được bao gồm trong một chuỗi trong DOM. Mã hóa ký tự của tài liệu không quan trọng ở đây; nó chỉ quan trọng trong phân tích cú pháp HTML, đã được thực hiện khi JavaScript bắt đầu thực thi. –

Các vấn đề liên quan