隐藏 JavaScript 不在旧浏览器中显示

Hiding JavaScript from displaying in old browsers

我正在尝试从书中学习 JavaScript。书的第一章说使用下面的格式来支持不支持JS的旧浏览器。它实际上做的很简单,它使用 HTML 注释标记来隐藏不支持 JS 的浏览器的脚本。我怀疑这段代码在所有浏览器中对我都适用,但在 Aptana Studio 3 中显示错误。现在我明白错误是由于 Aptana 将“<”视为关系运算符,但我该如何解决此错误?

<script>
    <!--
        //some JS code over here...
    //-->
</script>

错误(语法错误:意外标记)出现在:

<!--

所有浏览器现在都支持 JS。这个技巧用于防止第一代浏览器将 JS 代码显示为纯文本。

你可能想看看 this 文章。

Do not use the <!-- //--> hack with scripts. It was intended to prevent scripts from showing up as text on the first generation browsers Netscape 1 and Mosaic. It has not been necessary for many years. <!-- //--> is supposed to signal an HTML comment. Comments should be ignored, not compiled and executed. Also, HTML comments are not to include --, so a script that decrements has an HTML error.

编辑 1: 如果您仍想在 Aptana Studio 3 中使用此技巧,请也尝试评论第一部分:

<script>
    //<--
    Code Goes Here...
    //--!>
</script>

我没有测试但是解决了aptana的错误

我知道这不会直接回答您的问题,但事实是根本不需要这样做。如果浏览器不知道如何解释 JavaScript,几乎所有浏览器都会忽略该代码。此外,由于 Matt Kruse 给出的以下原因,添加 <!-- // --> 也可能很危险:

  • 在 XHTML 文档中,源实际上对所有浏览器都是隐藏的并且变得无用
  • HTML 注释中不允许,因此脚本中的任何递减操作都是无效的

要获得更详细的解释,我建议您查看 this documentation about the best practices for JavaScript and this question,它解释了为什么在 JavaScript 中使用 HTML 注释是一种不好的做法。

如果出于某种原因您仍然希望在用户禁用 JavaScript 时向其显示内容(或者由于旧浏览器而无法 运行),请使用 <noscript> 标签

如果您真的对注释掉您的 JavaScript 感到厌烦,那么请改用此代码片段,它不会给您带来错误:

//<!--

//-->

如果您还有其他问题,请随时提问。