2015-05-20 75 views
1

我有一个快乐的任务,在旧的Web应用程序上工作。在多个HTML文件,内嵌使用JavaScript语法如下:评论inline javascript

<body> 

html goes here... 

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

(编辑:脚本标签是身体内部)

通知的HTML注释是围绕整个javascript代码包裹。这并没有做任何事情,因为所有的浏览器都忽略脚本标签中的html注释。我的问题很简单:为什么过去的开发者会这样做?这是一种优化或跨浏览器问题,可以通过html评论“黑客”修复?

我已经删除了现在的评论,一切看起来工作正常。

+0

哎呀,不好的格式显示在纯文本 给用户,它们实际上是体内标签。 – user1884155

回答

2

假设你<script>元素是的身体,而不是后,这是为了让不知道什么是<script>元素忽略它的内容,而不是显示它很旧的浏览器的解决方案(浏览器应该显示为文字标签的内容,他们不明白)。

这个黑客应该很快就消失了,因为很难找到浏览器不知道什么是<script>元素,但不幸的是,由于一些糟糕的教程甚至最近还是建议这样的构造,所以这种不好的做法没有足够快地死去。

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

2

在古代的javascript(1995),一些浏览器如Netscape 1.0没有任何支持或知识的脚本标记。所以当JavaScript第一次发布时,需要使用一种技术来隐藏旧版浏览器的代码,这样他们就不会将其显示为页面中的文本。 'hack'是在脚本块中使用HTML注释来隐藏代码。有关详细说明检查this link

source

1

内联HTML注释,以防止旧的浏览器不 从纯文本 显示脚本代码了解脚本元素。

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

如果HTML注释是不存在,整个脚本会被这些浏览器

Source