<script type="text/javascript" language="JavaScript">
<!--
alert('foo');
//-->
</script>
它在我公司的grails应用程序中全部使用,但我知道<
是非法的javascript角色......
<!--
应该改为//<!--
吗?
答案 0 :(得分:4)
不,这不违法。来自the specification:
然而,这是毫无意义的。它旨在阻止不识别将内容作为文本呈现的脚本元素的浏览器。自 Netscape 2 以来,支持脚本元素!这使得今天语法的使用毫无意义。JavaScript引擎允许字符串“
<!--
”出现在SCRIPT元素的开头,并忽略其他字符直到行尾。
但是,如果你使用的是XHTML,那么它就是有害的。由于脚本元素不包含内在CDATA,因此其中的标记被视为标记而不是CDATA,因此它实际上会将脚本注释掉(如果文档被处理为XHTML而不是标记汤,则需要application / xhtml + xml content-type)。
<!--
应该改为//<!--
吗?
不,那会(部分)击败对象。
答案 1 :(得分:0)
这是允许的,但不应该使用它。它最初是为了防止JavaScript文本显示在Mosaic FWIR中。
答案 2 :(得分:0)
如果浏览器不支持JavaScript,这是确保JavaScript不会显示为文本的旧方法。
请参阅here。
答案 3 :(得分:0)
不应该使用它。
自Netscape 1.0以来一直没有要求
请参阅http://javascript.crockford.com/script.html道格拉斯·克罗克福德(Douglas Crockford)所说的话。
答案 4 :(得分:0)
<!--
是Javascript中的一个特殊构造,从Javascript是新的时代开始,并且JS-unaware浏览器无处不在。换句话说,Javascript理解并忽略HTML注释开始标记。它被视为空格,仅用于隐藏不知道Javascript的古代浏览器中的JS,或者甚至不知道<script>
标记是什么。
另一方面,html注释结束标记不是Javascript语言结构,必须使用JS //
注释进行注释。