2010-11-22 37 views
60

Đó là tốt hơn hoặc thuận tiện hơn để sử dụng:Đó là tốt hơn: <script type = "text/javascript"> ...</script> hoặc <script> ...</script>

<script type="text/javascript">...</script> 

hoặc

<script>...</script> 
+5

Nếu bạn đang sử dụng javascript làm ngôn ngữ thì dĩ nhiên 1st là tốt hơn –

+0

Tôi đoán hiệu suất bạn nhận được từ việc khai báo tập lệnh là java-script không đáng kể, nhưng là một câu hỏi tuyệt vời! –

+8

Câu trả lời "chính xác" có khác nếu chúng tôi có trong Html v4 và Html v5 không? –

Trả lời

96

Bạn có cần một loại thuộc tính ở tất cả? Nếu bạn đang sử dụng HTML5, không. Nếu không, có. HTML 4.01 và XHTML 1.0 chỉ định thuộc tính type theo yêu cầu trong khi HTML5 có tùy chọn, mặc định là text/javascript. HTML5 hiện được triển khai rộng rãi, vì vậy nếu bạn sử dụng loại tài liệu HTML5, <script>...</script> hợp lệ và là lựa chọn tốt.

Đối với những gì nên thuộc tính loại, kiểu MIME application/javascript được đăng ký trong năm 2006 nhằm thay thế text/javascript và được hỗ trợ bởi các phiên bản hiện tại của tất cả các trình duyệt chính (bao gồm Internet Explorer 9). Trích dẫn từ the relevant RFC:

Tài liệu này do đó định nghĩa văn bản/javascript và văn bản/ecmascript nhưng đánh dấu chúng là "lỗi thời". Sử dụng các loại phương tiện thử nghiệm và chưa đăng ký, như được liệt kê ở phần trên, không được khuyến khích. Loại phương tiện,

* application/javascript 
    * application/ecmascript 

cũng được định nghĩa trong tài liệu này, được dự định sử dụng phổ biến và nên được sử dụng thay thế.

Tuy nhiên, IE lên đến và bao gồm cả phiên bản 8 không thực hiện kịch bản bên trong một yếu tố <script> với một thuộc tính của một trong hai typeapplication/javascript hoặc application/ecmascript, vì vậy nếu bạn cần hỗ trợ cũ IE, bạn đang mắc kẹt với text/javascript.

+2

Bạn không cần "thuộc tính' loại'. Xác thực với HTML4.01 hoặc XHTML 1.0 không phải là những gì bạn nên làm nữa, và tất cả các trình duyệt sẽ hỗ trợ thẻ của bạn mà không có 'text/javascript' –

+8

@Ian: Tại thời điểm viết, thông số HTML5 là bản nháp đang hoạt động và chưa biến thành trạng thái hiện tại của mục tiêu di chuyển vĩnh viễn. Việc triển khai HTML5 của trình duyệt là một cách đáng kể phía sau vị trí hiện tại của chúng. Xem xét điều này, tôi nghĩ HTML5 vào thời điểm đó không khả thi để sử dụng trên web nói chung và câu trả lời của tôi hoàn toàn công bằng và luôn thực hiện tuyên bố từ chối trách nhiệm * "nếu bạn muốn HTML của mình hợp lệ" *. Tôi đồng ý rằng mọi thứ đã chuyển sang và câu trả lời này có thể làm với bản sửa đổi, nhưng tôi không đồng ý rằng việc viết các trang web trong HTML 4.01 giờ đây luôn là điều sai trái. –

+1

+1, chỉ phát hiện ra câu hỏi này từ một bản dupe. Nó nhắc tôi về [một số bài đăng] (http://www.google.co.uk/search?rlz=1C1SVEA_enGB358GB358&gcx=c&sourceid=chrome&ie=UTF-8&q=anne+van+kesteren+script+type) trên blog của Anne Van Kesteren , bao gồm [JavaScript MIME type] (http://annevankesteren.nl/2005/02/javascript-mime-type), nơi anh ta thảo luận về điều này. Tôi không thể tìm thấy nó, nhưng tôi đã chắc chắn có một bài mà ông đề nghị không sử dụng 'loại' ở tất cả vì nó hoạt động trong tất cả các trình duyệt. Có lẽ đó là một người khác. –

9

Cả hai đều sẽ hoạt động nhưng tiêu chuẩn xhtml yêu cầu bạn chỉ định type quá:

<script type="text/javascript">..</script> 

<!ELEMENT SCRIPT - - %Script;   -- script statements --> 
<!ATTLIST SCRIPT 
    charset  %Charset;  #IMPLIED -- char encoding of linked resource -- 
    type  %ContentType; #REQUIRED -- content type of script language -- 
    src   %URI;   #IMPLIED -- URI for an external script -- 
    defer  (defer)  #IMPLIED -- UA may defer execution of script -- 
    > 

type = content-type [CI] Thuộc tính này xác định ngôn ngữ kịch bản của nội dung của phần tử và đè ngôn ngữ kịch bản mặc định . Ngôn ngữ tập lệnh được chỉ định làm nội dung loại (ví dụ: "văn bản/javascript"). Tác giả phải cung cấp giá trị cho thuộc tính này. Không có giá trị mặc định cho thuộc tính này.

Nhận thấy sự nhấn mạnh ở trên.

http://www.w3.org/TR/html4/interact/scripts.html

Lưu ý: Tính đến HTML5 (xa), thuộc tính type là không cần thiết và là mặc định.

6

Bạn cần sử dụng <script type="text/javascript"> </script> trừ khi bạn đang sử dụng html5. Trong trường hợp đó bạn được khuyến khích thích <script> ... </script> (vì loại thuộc tính được xác định bởi mặc định để giá trị đó)

2

<script type="text/javascript"></script> vì đúng cách của nó và tương thích với tất cả các trình duyệt

3

Đây là tất cả những gì cần thiết:

<!doctype html> 
<script src="/path.js"></script> 
0

Với Firefox mới nhất, tôi phải sử dụng:

<script type="text/javascript">...</script> 

Hoặc khác kịch bản có thể không chạy đúng.

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