过去,人们习惯在JavaScript块周围包装HTML注释标记,以防止“较旧”的浏览器显示脚本。即使是Lynx也足够聪明,可以忽略JavaScript,那么为什么有些人会继续这样做呢?这些天有没有正当理由?
<script type="text/javascript">
<!--
//some js code
//-->
</script>
编辑:我遇到过一种情况。某些代码编辑器(如Dreamweaver)在“设计视图”中时会被JavaScript字符串中的引用HTML混淆,并尝试将其显示为页面的一部分。
答案 0 :(得分:72)
只有一段非常短暂的时间,这对这个问题很有帮助,而且是在1996年左右。
答案 1 :(得分:20)
没有充分的理由再这样做,因为需要它的浏览器基本上从网上消失了。
事实上,这样做实际上会导致某些旧版浏览器尝试解释页面的意外问题(如果它使用XHTML) - 来自developer.mozilla.org:
Mozilla 1.1 + / Opera 7
不要应用CSS或执行JavaScript。
Netscape 7.0x / Mozilla 1.0.x
不要应用CSS但会执行JavaScript。
Internet Explorer 5.5 +
无法显示文件。
答案 2 :(得分:14)
你应该使用CDATA ......
<script type="text/javascript" charset="utf-8">
/* <![CDATA[ */
/* ]]> */
</script>
因为如果您的代码中包含'&lt;','&gt;','&amp;'等,代码将无法验证:)
答案 3 :(得分:11)
天哪没有,没有人需要这个,如果你这样做,你还有一些问题值得关注。当你真的想要支持那些需要它的浏览器时,你必须要注意更多的东西。甚至没有谈论缺乏CSS!
然而,更大的问题是,人们做错了。实际上你的例子是错误的,因为行
-->
应该阅读
//-->
其次,你输入属性说“text / JavaScript”也有什么不对。它一直是“text / javascript”(全部小写),但这已经过时了(请参阅IANA List),现在它应该是“application / javascript”(参见another IANA List。但是,Douglas Crockford, JS Guru说你应该把它留下来。
没有人提到的另一个问题是:在HTML注释中,不允许使用“ - ”,这意味着你不能使用“x--”将x减1。
答案 4 :(得分:1)
不必使用CDATA块是我更喜欢使用HTML 4.01 Strict作为我的docttype的原因之一,但是,Staicu,我认为它使用了以下语法:
<script charset="utf-8">
//<![CDATA[
//]]>
</script>
也许这两个是等价的?任何人都知道一方是否有优势?