在JavaScript块上使用HTML注释仍然有意义吗?

时间:2008-10-15 14:02:34

标签: javascript html

过去,人们习惯在JavaScript块周围包装HTML注释标记,以防止“较旧”的浏览器显示脚本。即使是Lynx也足够聪明,可以忽略JavaScript,那么为什么有些人会继续这样做呢?这些天有没有正当理由?

<script type="text/javascript">
<!--
//some js code
//-->
</script>

编辑:我遇到过一种情况。某些代码编辑器(如Dreamweaver)在“设计视图”中时会被JavaScript字符串中的引用HTML混淆,并尝试将其显示为页面的一部分。

5 个答案:

答案 0 :(得分:72)

不,绝对没有。现在任何用户代理,搜索引擎蜘蛛或其他任何其他东西都足够聪明,如果无法执行它,就会忽略Javascript。

只有一段非常短暂的时间,这对这个问题很有帮助,而且是在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 +

         

    无法显示文件。

  •   

该网站还链接到上述several problems的示例。

答案 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>

也许这两个是等价的?任何人都知道一方是否有优势?