我记得几年前读过一些关于它的东西,但我不记得了。
是否与 IE 有关并将其解析为纯文本...?
我想你的意思是 CDATA
这修复了验证器。问题是一些较旧的网络浏览器不理解 CDATA 标记,因此这会破坏您在这些网络浏览器中的 Javascript。幸运的是,Javascript 多行注释以不会导致验证错误的字符开始和结束。因此,就 Web 浏览器中的 Javascript 处理器而言,我们可以注释掉 CDATA 标记,而就验证器而言,仍将 Javascript 内容定义为 CDATA。我们这样做:
<script type="text/javascript">
/* <![CDATA[ */
// content of your Javascript goes here
/* ]]> */
</script>
HTML 注释标签<!--
,-->
应该在 JavaScript 周围添加,以防止不理解 JS 的旧浏览器将其显示为文本。最好将 JavaScript 的“comment to end of line”字符//
放在结束 HTML 注释标记的前面,这样 JavaScript 就不会将其解释为代码。从技术上讲,不了解 JS 的浏览器极为罕见,但它不会造成任何伤害,总共可能会花费 15 个字节。
最后,我通常会做这样的事情,主要是出于习惯:
<script type="text/javascript">
<!--
var scriptHere="whatever";
//-->
</script>
我会在这里大胆猜测......你的意思是这样的:
<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>
它很好地将内容与行为分开,整理你的标记,利用缓存和并行下载,让你不用担心这样的事情。