2012-03-17 36 views
4

可能重複:
Why does this Javascript code inside a non-Javascript browser have extra commenting?Javascript中<! - 和// - >的用法是什麼?

有時候我看到一些JavaScript與<!--開始和結束//-->

我想知道這種線的用途是什麼?據我所知,<!--意味着評論線。但情況似乎並非如此,因爲該劇本即使在這樣的路線下也能繼續運作。如果線路被移除,它也可以工作。

下面是一個簡單的例子:

<script language='JavaScript' type='text/javascript'> 
<!-- 
    function changelang(id) { 
    document.location.href='index.php&lch=1&lang=' + id } 
//--> 
</script> 

回答

7

它曾經被用於舊的瀏覽器,其不明白script標籤並會使他們的內容節點作爲文本,這當然是不可取的。

這可能更有意義,當你想到的canvasaudionoscript元素含量(後者的特殊今天對待,但是想象一下,回到昔日在瀏覽器根本不知道什麼叫noscript元素爲) 。

在這個時代,它不是必需的。

道格拉斯克羅克福德建議不要使用它們。

不要使用<!-- //-->黑客與腳本。它旨在 防止腳本顯示爲第一代 瀏覽器Netscape 1和Mosaic上的文本。它不需要很多 年。 <!-- //-->應該表示HTML評論。評論 應該被忽略,不編譯和執行。此外,HTML註釋 不包括--,因此遞減的腳本具有HTML錯誤。

Source

+0

哇,快速的回答。所以我想這就像'language ='Javascript''一樣被棄用了,對吧?謝謝! – deathlock 2012-03-17 11:10:21

+0

@deathlock是的,永遠不要使用'language'屬性。 :)從HTML5開始,您還可以刪除'type'屬性,因爲默認值爲'text/javascript'。 – alex 2012-03-17 11:11:18

+0

我看到......出於好奇,如果我要使它向後兼容(如果有人使用舊瀏覽器),那麼這兩個仍然需要或可以放棄嗎? – deathlock 2012-03-17 11:15:19

1

這是一個古老的慣例,用於隱藏不理解腳本標記的瀏覽器的腳本文本內容(與禁用腳本標記相比)。

相關問題