<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(我可以找到第一个链接解释它) –