2011-07-24 66 views
28

On aminutewithbrendan,布蘭登·艾克作出了斷手的評論暗示的服務腳本,是「<script type ='text/javascript'>」不正確?

<script type='text/javascript'></script>

是不正確的,因爲"text/javascript"不是有效的MIME類型,他說"application/javascript"是一個有效的MIME類型。

我只在意HTML5作爲文檔類型

  • 在html5 W3C規範中定義的<script>的MIME類型在哪裏?
  • 什麼是瀏覽器支持像"text/javascript""application/javascript"
  • 應該使用哪一個?或者,我們應該根本不設置type

從布倫丹文字報價:(1:48)

...或腳本類型等於應用程序/ JavaScript或應用程序/ ECMAScript中,這些都是官方的MIME類型或那些的任何一個從HTML4編造的像文/ JavaScript的...

相關:

相關資源的聯合並沒有真正回答三個問題。

+6

在HTML5中,您只需編寫''afaik。 –

回答

31

在html5 W3C規範中定義的<script>的MIME類型在哪裏?

無處,它有一個list(其中包括一些實驗和過時的),但指出,你可以使用任何你喜歡的MIME類型。 MIME types are defined by IANAtext/javascript正式標記爲有利於application/javascript

過時是什麼樣的「文字/ JavaScript」和「應用程序/ JavaScript的」瀏覽器支持?

不夠好。仍然有很多瀏覽器無法識別後者。 (但是,這只是type屬性的一個問題,您可以正確設置HTTP Content-Type標頭而不用擔心)。

應該使用哪一個?或者,我們應該根本不設置類型?

由於您只關心HTML 5,所以完全省略了type屬性。它是可選的,默認語言是JavaScript。

+14

作爲一個旁註,你可以使用''application/javascript「'作爲你的'type',並且這將自動不向舊的/不兼容的瀏覽器提供javascript。這可能被認爲是「積極」的東西 – Raynos

3

我認爲布蘭登是(至少)部分錯誤的。 HTML5最新編輯草稿(2011年8月15日)說:

type屬性給出了腳本的語言或 數據的格式。如果該屬性存在,則其值必須是有效的MIME 類型。不得指定charset參數。如果該屬性不存在,則使用 的默認值爲「text/javascript」。

因此,如果您不包含type屬性,則默認值爲「text/javascript」。如果這是默認值,則它必須是有效的MIME類型。

其他有效的MIME類型是什麼?該規範似乎不舉一個例子列表,但是當它稱,它指定所需的格式:

字符串是一個有效的MIME類型是否匹配在3.7節中定義的媒體類型的規則 「媒體類型」 2616

的,你可以閱讀這裏的喜悅:

http://www.ietf.org/rfc/rfc2616.txt

編輯:昆汀是正確的:對於HTML5,有沒有必要包括type屬性,假設您使用Javascript。

+1

對我來說,它只是需要:type/subtype text/javascript將是有效的。但是我相信W3C應該支持應用程序/ javascript類型。 – jonathanKingston

相關問題