2012-03-14 55 views
3

W3 tutorial,它顯示htis代碼:爲什麼這個Javascript代碼在非Javascript瀏覽器中有額外的評論?

<html> 
<body> 
<script type="text/javascript"> 
<!-- 
document.getElementById("demo").innerHTML=Date(); 
//--> 
</script> 
</body> 
</html> 

於是說:

The two forward slashes at the end of comment line (//) is the JavaScript comment symbol. This prevents JavaScript from executing the --> tag.

這是沒有道理給我。我認爲整個事情都被註釋掉了。

+3

這是一個非常古老的傳統片段。它僅在*不支持

6

做的瀏覽器瞭解JavaScript開頭<-- html註釋被忽略,JS代碼被執行。最後一行的JS評論//然後阻止關閉-->被JS引擎視爲錯誤。在不理解JavaScript的瀏覽器中,<---->之間的所有內容均被視爲html註釋並被忽略。

這整個事情是舊的瀏覽器,不知道JS的預防措施。這對於任何現代瀏覽器都是不必要的。

如果您想註釋掉一塊JS,請將塊放在/**/之間。

+3

在這種情況下,較舊的<1996年! – 2012-03-14 21:00:09

+0

Aaah我現在明白了,非常感謝這麼多! – Coffee 2012-03-14 21:01:02

1

,你會得到語法錯誤:

<script type="text/javascript"> 
<!-- 
document.getElementById("demo").innerHTML=Date(); 
--> 
</script> 

JavaScript不知道HTML的評論關閉-->,所以它必須註釋掉腳本。 不需要使用HTML註釋來分離JavaScript,除非您使用簡單的文本編輯器來爲代碼着色(NoteTab等)。

1

它都會被註釋掉。

在沒有Javascript的bowser中,<!---->之間的所有內容都將被註釋掉。

試想想它是這樣的: 如果你嘗試這種代碼

<script type="text/javascript"> 
--> 
</script> 

然後使用Javascript將拋出一個錯誤。

相關問題