在一段HTML代码的开头,我发现了以下内容:
<body><script type="text/javascript" language="javascript1.2">//<![CDATA[
<!--
...a bunch of if/thens that drive a browser specific line of text...
//-->
//]]></script>我之所以感到困惑,是因为我希望HTML注释标记<!-- -->和//会阻止代码运行,本质上是解析到
<body><script type="text/javascript" language="javascript1.2"></script>
但是,我正在显示特定于浏览器的文本,并且似乎没有任何其他地方正在生成它。<![CDATA[是否以某种方式覆盖了javascript注释,允许脚本运行,而CDATA块中的HTML注释阻止了javascript在浏览器中显示?有人能帮我理解这些信息是如何被解析和显示/使用的吗?
发布于 2013-11-26 01:30:15
<!-- -->仅用于HTML注释,不用于javascript注释。Javascript对单行注释使用//,对多行注释使用/* */。如果你在javascript中使用<!-- -->,它通常会被忽略。一些浏览器可能会抛出一个javascript错误。
发布于 2013-11-26 01:37:51
这允许在JS代码中编写任意字符,包括字符,这些字符被视为XML的特殊符号,如'<‘、'>’等。
-->注释end - JavaScript在//中没有任何意义,这就是为什么它前面有//的原因。
此处使用HTML注释向不支持JavaScript的浏览器隐藏JavaScript代码。对于这些浏览器,代码将只是<!--和-->之间的文本,不会显示在页面上。
以这种方式进行评论是一种非常古老的做法。
在任何情况下,最好是将所有JavaScript代码放在单独的文件中,并使用<script>标记包含该文件。这样就可以避免同时使用CDATA和HTML注释。
https://stackoverflow.com/questions/20199186
复制相似问题