在Javascript中,<!--和//-->有什么用途?

4
有时候我会看到一些以<!--开头,以//-->结尾的JavaScript代码。
我想知道这样的行有什么用处?据我所知,<!--表示注释。但是即使有这样的行,脚本仍然可以正常工作。如果删除该行,脚本也可以正常工作。
下面是一个简短的例子:
<script language='JavaScript' type='text/javascript'>
<!--
    function changelang(id) {
    document.location.href='index.php&lch=1&lang=' + id }
//-->
</script>
2个回答

7
曾经用于旧版浏览器,因为这些浏览器无法理解 script 标签并将其内容呈现为文本节点,这当然是不理想的。
当你考虑到 canvasaudionoscript 元素的内容时(后者今天被特殊处理,但在旧时代想象一下浏览器不知道 noscript 元素是什么),这可能更有意义。
在当今这个时代,它已经不再需要。
Douglas Crockford 不建议使用这种方式。

不要在脚本中使用 <!-- //--> hack。这是为了防止脚本在第一代浏览器 Netscape 1 和 Mosaic 中显示为文本而设计的。多年来它已经不再必要。<!-- //--> 应该表示一个 HTML 注释。注释应该被忽略,而不是进行编译和执行。此外,HTML 注释不能包含 --,因此一个递减的脚本会有一个 HTML 错误。

来源


哇,回答好快。那么我猜这就像 language='Javascript' 一样被弃用了,对吧?谢谢! - deathlock
@deathlock,是的,千万不要使用language属性。:)自HTML5以来,您还可以删除type属性,因为默认值为text/javascript - alex
我明白了...只是出于好奇,如果我要使其向后兼容(以防有人使用旧浏览器),那么这两个是否仍然需要或者完全可以放弃? - deathlock
@deathlock 你可以放心地放弃它们。 - alex

1

这是一种旧的惯例,用于隐藏脚本文本内容,以避免浏览器无法理解脚本标签(与禁用相对)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接