使旧版浏览器忽略
HTML页面中的
JavaScript块的旧成语是将< script> HTML注释中的元素:
<script> <!-- alert("Your browser supports JavaScript"); //--> </script>
原因是旧的无JavaScript浏览器将以文本形式呈现< script>的内容.元素,所以将JavaScript放在HTML注释中,使浏览器无法渲染.
另一方面,现代浏览器将会看到< script>元素并将其内容解析为JavaScript.因此,这些注释需要有效的JavaScript. JavaScript解析器忽略关闭HTML注释( – >),因为它之前是一个JavaScript行注释(//).
我的问题是,开放HTML评论(<! - )不会导致JavaScript解析器失败?我已经听到各方的意见,开始的HTML评论是有效的JavaScript.如果开放评论是JavaScript评估的,那么执行时该怎么办?
解决方法
这似乎是令人兴奋的,一个可能具有特殊含义(<!和 - 都是Javascript中的操作符)的表达式,但是没有操作数,这是没有意义的.
Turns out那个<! - 在Javascript中简单地等同于//,它用于注释掉一行. 这是一个语言功能,似乎没有被充分记载,尽管如此,可能是因为简单的原因来支持这个“黑客”.而现在我们必须忍受不要破坏后台的兼容性. 不用说,虽然这是一个有趣的事情要知道,这种类型的评论不应该用于其他人可能会阅读和使用的真实代码. “黑客”也是过时的,因为现在每个浏览器都了解< script>标签,并且不显示其内容(即使Javascript已关闭).就个人而言,在大多数情况下,我尽量避免将Javascript直接写入HTML,并将JavaScript作为外部资源加载,以分离HTML和Javascript.