2010-12-12 50 views

回答

22

這不再是真的有必要了。這隻能作爲一種向後兼容的手段 - 當腳本首先被插入靜態HTML頁面時,大多數瀏覽器都無法支持它們。如果沒有評論,他們會忽略<script>標記(他們不明白)的語義,然後將腳本源發送到頁面上。具有諷刺意味的是,解決方案本身就是一種破解--AFAIK,HTML規範的任何部分都沒有說明腳本標籤應該在註釋內部進行解析。所有瀏覽器都認爲這個事實似乎比其他任何事情都更巧合。當然,對於XHTML,註釋是註釋,因此完全符合瀏覽器將有忽略您的腳本。所以基本上,除非你真的想支持,否則真的是老瀏覽器(以打破一些新瀏覽器爲代價),不再需要這樣做。

+7

我記得'// <! - '和'// - >'的技巧,即您將HTML註釋標記寫爲JavaScript註釋,以便它們被腳本引擎忽略。當然,這意味着舊的瀏覽器可能會從打開的評論標記中發出「//」。 – Rup 2010-12-12 12:42:01

+0

+1進行評論。這並不是打算在評論中包含腳本標記本身。 – GolezTrol 2010-12-12 12:52:28

8

真的不懂<script>標籤的舊瀏覽器可能會認爲它是一個它不理解的格式化標籤。通過在頁面中內聯標記(腳本)的內容,它們會優雅地失敗。

通過HTML註釋腳本,這些瀏覽器將忽略內容而不是渲染它。

實際上,我懷疑這些瀏覽器仍在使用中,並且您現在可能在沒有評論的情況下離開。

7

它適用於上個世紀使用的一些舊瀏覽器。

今天不再需要它們,但如果您編寫XHTML,則使用CDATA被認爲是一種很好的做法。

+1

將JavaScript代碼放在單獨的文件中被認爲是更好的做法。 – GolezTrol 2010-12-12 12:54:34

+4

+1表示「上個世紀」。 :) – 2011-06-19 19:22:10

+1

「使用上個世紀」大聲笑:) – Green 2016-07-08 16:47:52

0

如果您的頁面被衛生解析器處理,只通過將<script>標籤重寫爲<xscriptx>來進行處理,它仍然是一個問題。如果你留在評論標籤中,那麼如果腳本標籤被清除,那麼至少你的javascript仍然會被評論標籤隱藏。如果您不發表評論,代碼將會顯示。

衛生分析器的一個例子是Google Translate,Google Cache或Proxomitron。

+0

有趣。我遵循你的推理,但至少現在檢查Google Translate和Google Cache,我沒有看到任何這樣的問題。 – J0e3gan 2015-05-29 16:32:17