0

我记得几年前读过一些关于它的东西,但我不记得了。

是否与 IE 有关并将其解析为纯文本...?

4

3 回答 3

3

我想你的意思是 CDATA

来源

这修复了验证器。问题是一些较旧的网络浏览器不理解 CDATA 标记,因此这会破坏您在这些网络浏览器中的 Javascript。幸运的是,Javascript 多行注释以不会导致验证错误的字符开始和结束。因此,就 Web 浏览器中的 Javascript 处理器而言,我们可以注释掉 CDATA 标记,而就验证器而言,仍将 Javascript 内容定义为 CDATA。我们这样做:

<script type="text/javascript">
/* <![CDATA[ */
// content of your Javascript goes here
/* ]]> */
</script>
于 2012-06-11T23:37:15.650 回答
3

HTML 注释标签<!---->应该在 JavaScript 周围添加,以防止不理解 JS 的旧浏览器将其显示为文本。最好将 JavaScript 的“comment to end of line”字符//放在结束 HTML 注释标记的前面,这样 JavaScript 就不会将其解释为代码。从技术上讲,不了解 JS 的浏览器极为罕见但它不会造成任何伤害,总共可能会花费 15 个字节。

最后,我通常会做这样的事情,主要是出于习惯:

<script type="text/javascript">
<!--
var scriptHere="whatever";
//-->
</script>
于 2012-06-11T23:39:27.563 回答
0

我会在这里大胆猜测......你的意思是这样的:

<script type="text/javascript">//<![CDATA[
function doStuff() {
    alert('Yadayadayada');
}
//]]></script>

(变体包括<!--第一行和//-->最后一行, JavaScript 中的注释<!--也是如此。)

它可能与将其解释为文本的旧浏览器有关,但在这方面,您绝对不必再担心它了。

另一部分是有效性。<例如,JavaScript中>用于比较和AND 操作的某些字符&不是有效的 XML。将它们放在 CDATA 块中使它们有效。但是,我不知道任何浏览器会因此而导致问题。

当然,处理这个问题的最好方法是使用以下链接链接到外部脚本src

<script type="text/javascript" src="scripts/whatever.js"> </script>

它很好地将内容与行为分开,整理你的标记,利用缓存和并行下载,让你不用担心这样的事情。

于 2012-06-11T23:39:55.897 回答