【问题标题】:Commenting inline javascript [duplicate]评论内联javascript [重复]
【发布时间】:2015-08-01 10:15:07
【问题描述】:

我有一项快乐的任务是开发一个旧的 Web 应用程序。在几个 html 文件中,内联 javascript 使用以下语法:

<body>

html goes here...

    <script>
    <!--
        javascript goes here
    -->
    </script>
</body>

(编辑:脚本标签在正文中)

请注意包裹在整个 javascript 代码周围的 html 注释。这实际上并没有做任何事情,因为所有浏览器都会忽略脚本标签内的 html cmets。我的问题很简单:为什么过去的开发人员会这样做?这是某种可以通过 html 注释“hack”解决的优化或跨浏览器问题吗?

我现在已经移除了 cmets,一切看起来都正常。

【问题讨论】:

  • 糟糕,格式错误,它们实际上在正文标签内。

标签: javascript html


【解决方案1】:

javascript(1995 年)的远古时代,一些浏览器(例如 Netscape 1.0)不支持或不了解 script 标签。因此,当 javascript 首次发布时,需要一种技术来隐藏旧浏览器中的代码,这样它们就不会在页面中将其显示为文本。 “hack”是在脚本块中使用 HTML cmets 来隐藏代码。详细说明请查看this link

source

【讨论】:

    【解决方案2】:

    假设您的 &lt;script&gt; 元素是 inside 正文而不是 after,这是一个让非常旧的浏览器不知道什么是 &lt;script&gt; 元素忽略的解决方案它的内容而不是显示它(浏览器应该将它们不理解的标签内容显示为文本)。

    这个 hack 应该很快就消失了,因为很少有浏览器不知道 &lt;script&gt; 元素是什么,但不幸的是,由于一些糟糕的教程甚至最近仍在建议这样的构造,这种不良做法并没有很快消失.

    请注意,正文和头部之外的脚本元素都是无效的。

    【讨论】:

      【解决方案3】:

      内联 HTML cmets 是为了防止旧的浏览器不支持 通过以普通方式显示脚本代码来理解脚本元素 文本。

      不理解脚​​本元素的旧浏览器会 将上面脚本元素的全部内容解释为一个单一的 HTML 注释,以“”开头,有效 完全忽略脚本。

      如果 HTML 注释不存在,则整个脚本将是 这些浏览器以纯文本形式向用户显示

      Source

      【讨论】:

        猜你喜欢
        • 2011-02-01
        • 2015-03-04
        • 2021-04-11
        • 2014-01-04
        • 1970-01-01
        • 2015-01-23
        • 2012-03-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多