为什么人们添加<!--// ..-->他们的JavaScript代码

Why do people add <!--// ...//--> round their javascript code?

本文关键字:他们的 JavaScript 代码 为什么 添加      更新时间:2023-09-26

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

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

我想你的意思是 CDATA

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

<script type="text/javascript">
/* <![CDATA[ */
// content of your Javascript goes here
/* ]]> */
</script>

应该在JavaScript周围添加HTML注释标签<!---->,以防止不理解JS的旧浏览器将其显示为文本。最好将 JavaScript "注释到行尾"//字符放在结束 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>

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

相关文章: