簡體   English   中英

為什么我需要在HTML中注釋<script>標記?

[英]Why do I need to comment the <script> tag in HTML?

我見過的大多數例子都在html頁面中包含腳本

<!--
...
-->

我試過寫它沒有評論標簽,似乎沒有任何區別。 為什么使用注釋標簽以及它提供的功能是什么?

這不再是必要的了。 這只是一種向后兼容的黑客攻擊 - 當腳本首次插入靜態HTML頁面時,大多數瀏覽器都無法支持它們。 如果沒有注釋,它們將忽略<script>標記的語義(它們不理解),然后將腳本源發布到頁面上。

具有諷刺意味的是,解決方案本身就是一個黑客攻擊--AFAIK,HTML規范的任何部分都沒有說應該在注釋內部解析腳本標記。 所有瀏覽器選擇這一點的事實似乎比其他任何事情更巧合。 當然,使用XHTML,注釋是注釋,因此完全一致的瀏覽器必須忽略您的腳本。

所以基本上,除非你想支持真的, 真的很老的瀏覽器(在突破一些新的成本),它不再需要做到這一點。

真正老的瀏覽器不理解<script>標簽可能會認為它是一個它不理解的格式化標簽。 他們會通過在頁面中內嵌呈現標記(腳本)的內容而優雅地失敗。

通過HTML注釋掉腳本,這些瀏覽器將忽略內容而不是呈現它。

在實踐中,我懷疑這些瀏覽器是否仍在使用中,如果沒有現在的評論,你可能會離開。

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

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

如果您的頁面由衛生解析器處理,現在仍然是一個問題,該解析器僅通過將<script>標記重寫為<xscriptx> 如果你留在評論標簽中,那么如果腳本標簽被消毒了,那么至少你的javascript仍將被評論標簽隱藏。 如果省略注釋,代碼將可見。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM