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

时间:2012-03-17 10:08:18

标签: javascript html

  

可能重复:
  Why does this Javascript code inside a non-Javascript browser have extra commenting?

有时我会看到一些以<!--开头并以//-->结尾的Javascript。

我想知道这种线路的用途是什么?据我所知,<!--表示评论行。但事实似乎并非如此,因为即使使用这样的行,脚本仍然可以工作。如果删除该行,它也可以工作。

这是一个简短的例子:

<script language='JavaScript' type='text/javascript'>
<!--
    function changelang(id) {
    document.location.href='index.php&lch=1&lang=' + id }
//-->
</script>

2 个答案:

答案 0 :(得分:7)

它曾用于不了解script标签的旧浏览器,并将其内容节点呈现为文本,这当然是不受欢迎的。

当您考虑canvasaudionoscript元素的内容时,这可能会更有意义(后者在今天被特别对待,但想象一下过去浏览器不知道noscript元素是什么。)

在这个时代,这不是必需的。

Douglas Crockford建议不要使用它们。

  

不要将<!-- //--> hack与脚本一起使用。它的目的是   防止脚本在第一代显示为文本   浏览器Netscape 1和Mosaic。对许多人来说没有必要   年份。 <!-- //-->应该表示HTML评论。评论   应该被忽略,而不是编译和执行。此外,HTML评论是   不包含--,因此递减的脚本会出现HTML错误。

Source

答案 1 :(得分:1)

这是一个旧惯例,用于隐藏不了解脚本标记的浏览器的脚本的文本内容(而不是禁用它)。