2011-03-18 210 views
2

可能重複:
Why don't self-closing script tags work?加載腳本

爲什麼是它

<腳本類型= 「文/ JavaScript的」 SRC =「〜/腳本/ json2 .js「> </script >

<腳本類型= 「文本/ JavaScript的」 SRC = 「〜/腳本/ json2.js」/ >

不同

似乎後一種形式不加載和,如果我用它正確工作的第一種方法替換它。

+0

查看具有96票以上的[這個問題](http://stackoverflow.com/questions/69913/why-dont-self-closing-script-tags-work)的答案。 – DOK 2011-03-18 17:51:12

+0

爲什麼你有〜在url路徑 – fazo 2011-03-18 17:52:19

+0

道歉,我沒有意識到這是一個重複。我投票結束了。 – 2011-03-18 17:55:48

回答

3

在XML中<foo></foo><foo/>的含義完全相同。所以在一個XHTML文檔中(如果它被解釋爲XML),它們之間沒有區別。

在SGML中,他們沒有。

HTML歷史上被設計爲SGML應用程序(並且早於XML)。考慮到這一點,瀏覽器已經實現了它們的解析器(儘管它們不是完整的SGML解析器,並且一些有效的語法被錯誤地處理)。

當您向具有文本/ HTML Content-Type的瀏覽器提供文檔時,它會將其解釋爲HTML。

因此<script/>被視爲需要結束標記的元素的開始標記。

當寫HTML兼容XHTML(即服爲text/html即XHTML)的指導方針建議其被定義爲EMPTY(並且因此結束標記是被禁止的)的元素被表示爲<foo/>和所有其他元素被表示如<foo></foo>

由於<script>元素可以有內容(一個內聯腳本),因此結束標記不是禁止的,所以需要顯式結束標記。

0

可能因爲不是一個單一的標籤(我忘記了他們所稱的),如BR或HR。腳本標籤總是需要打開和關閉。