我有一个工作在旧的Web应用程序上的快乐任务。在几个html文件中,内联javascript使用以下语法:
<body>
html goes here...
<script>
<!--
javascript goes here
-->
</script>
</body>
(编辑:脚本标签在体内)
请注意包含整个javascript代码的html注释。这并没有真正做任何事情,因为所有浏览器都忽略脚本标签内的html注释。我的问题很简单:为什么过去的开发人员会这样做?这是某种优化还是跨浏览器问题,可以通过html评论“hack”修复?
我暂时删除了评论,一切看起来都很正常。
答案 0 :(得分:2)
假设您的<script>
元素在主体内而不是在之后,这是一个解决方案,让非常老的浏览器不知道什么是{{1元素忽略其内容而不是显示它(浏览器应该将文本显示为他们不理解的标记内容)。
这个黑客应该很快就会消失,因为很难找到浏览器不知道<script>
元素是什么,但不幸的是,由于一些不好的教程仍然建议这样的结构,这种不良做法不会死得太快甚至最近。
请注意,正文和头部之外的脚本元素无效。
答案 1 :(得分:2)
在 javascript (1995)的古代,像Netscape 1.0这样的浏览器对脚本标记没有任何支持或了解。因此,当javascript首次发布时,需要一种技术来隐藏旧浏览器中的代码,以便它们不会在页面中将其显示为文本。 'hack'是在脚本块中使用HTML注释来隐藏代码。有关详细说明,请查看 this link
答案 2 :(得分:1)
内联HTML注释是为了防止没有的旧版浏览器 了解脚本元素在plain中显示脚本代码 文本。
不了解script元素的旧浏览器会 将上面脚本元素的整个内容解释为一个单独的内容 HTML评论,以&#34;&#34;开头,有效 完全忽略脚本。
如果HTML评论不存在,那么整个脚本就是 这些浏览器以纯文本形式显示给用户