<script type="text/javascript" language="JavaScript">
<!--
alert('foo');
//-->
</script>
它用遍了我公司的Grails應用程序,但我知道<
是非法的JavaScript字符...這是非法的語法?
如若<!--
像//<!--
呢?
<script type="text/javascript" language="JavaScript">
<!--
alert('foo');
//-->
</script>
它用遍了我公司的Grails應用程序,但我知道<
是非法的JavaScript字符...這是非法的語法?
如若<!--
像//<!--
呢?
不,它不是非法的。從the specification:
JavaScript引擎允許字符串「
<!--
」發生在一個SCRIPT元素開始,並且忽略進一步字符到行的結尾。
然而,這是毫無意義的。它旨在阻止不識別腳本元素的瀏覽器將內容呈現爲文本。腳本元素自Netscape 2以來一直支持!這使得今天語法的使用完全沒有意義。
但是,如果您使用的是XHTML,那麼它是有害的。由於腳本元素不包含內在的CDATA,因此它們內部的標記被視爲標記而不是CDATA,因此它實際上會對腳本進行註釋(如果文檔被處理爲XHTML並且不標記湯,這將需要application/xhtml + xml內容類型)。
<!--
應該是//<!--
而不是?
不,這會(部分)擊敗對象。
但顯然stackoverflow不;);) –
這是允許的,但不應該使用它。最初是爲了防止在Mosaic FWIR中出現JavaScript文本。
如果瀏覽器不支持JavaScript,這是確保JavaScript不會顯示爲文本的舊方法。
請參閱here。
<!--
是Javascript中的一個特殊構造,在JavaScript剛出現的時代就已經存在了,並且JS未知瀏覽器無處不在。換句話說,Javascript理解並忽略HTML註釋開始標籤。它被視爲空白,並且僅用於隱藏來自不知道Javascript的古代瀏覽器的JS,或者甚至不知道<script>
標籤是什麼。
另一方面,HTML註釋結束標記不是Javascript語言結構,必須使用JS //
評論註釋掉。
你爲什麼要那樣做?在Javascript中,您可以使用//或/ * * /進行評論 – lc2817
如果瀏覽器不支持JavaScript,那麼確保JavaScript不會顯示爲文本的方式是老方法。 –
看到http://www.javascripter.net/faq/hidingjs.htm(我可以找到第一個鏈接解釋它) –