【问题标题】:Hiding JavaScript from displaying in old browsers隐藏 JavaScript 在旧浏览器中的显示
【发布时间】:2015-07-08 12:53:47
【问题描述】:

我正在尝试从一本书中学习 JavaScript。本书第一章说要使用下面的格式来支持不支持JS的老浏览器。它实际上做的很简单,它使用 HTML 注释标签从不支持 JS 的浏览器中隐藏脚本。我怀疑此代码在所有浏览器中对我来说都可以正常工作,但在 Aptana Studio 3 中显示错误。现在我知道该错误是由于 Aptana 将“

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

错误(语法错误:意外令牌)出现在:

<!--

【问题讨论】:

标签: javascript aptana3


【解决方案1】:

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

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

如需更详细的解释,我建议您查看 this documentation 了解 JavaScript 的最佳实践,this question 解释了为什么在 JavaScript 中使用 HTML cmets 是不好的做法。

如果出于某种原因,如果用户禁用了 JavaScript(或由于旧浏览器而无法运行它),您仍想向用户显示内容,请使用 &lt;noscript&gt; 标记

如果您真的不喜欢注释掉您的 JavaScript,那么请改用这段代码 sn-p,它不应该给您错误:

//<!--

//-->

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

【讨论】:

  • 非常感谢..你的解释真的很有用!
【解决方案2】:

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

您可能想看看this 文章。

不要在脚本中使用&lt;!-- //--&gt; hack。它旨在防止脚本在第一代浏览器 Netscape 1 和 Mosaic 上显示为文本。多年来一直没有必要。 &lt;!-- //--&gt; 应该表示 HTML 注释。注释应该被忽略,而不是编译和执行。另外,HTML cmets 不能包含--,因此递减的脚本会出现 HTML 错误。

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

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

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

【讨论】:

    猜你喜欢
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 2013-12-30
    • 2015-08-04
    相关资源
    最近更新 更多