我刚刚在浏览器上尝试了此代码(Chrome 39,Windows 8): -
<html>
<body>
<script>
<!--
document.write("<h1>Hello</h1>");
-->
</script>
</body>
</html>
这会在浏览器上生成标题文本。但是当我稍作修改时 - 将HTML注释内容放在一行上,
<html>
<body>
<script>
<!-- document.write("<h1>Hello</h1>"); -->
</script>
</body>
</html>
这不会显示任何内容。 为什么会这样?我认为HTML评论不符合Javascript标准。
P.S。我知道如何把javascript评论。我只是想知道这种不稳定的行为。
答案 0 :(得分:5)
这是将javascript隐藏到无法识别script
元素的浏览器的方法。第一行总是被忽略:Hiding script data from user agents
在JavaScript中评论脚本
JavaScript引擎允许字符串
"<!--"
出现在SCRIPT
元素的开头,并且 会忽略其他字符,直到行尾。 JavaScript将"//"
解释为开始延伸到结尾的注释 当前行。这需要隐藏字符串"-->"
JavaScript解析器。<SCRIPT type="text/javascript"> <!-- to hide script contents from old browsers function square(i) { document.write("The call passed ", i ," to the function.","<BR>") return i * i } document.write("The function returned ",square(5),".") // end hiding contents from old browsers --> </SCRIPT>