在JavaScript块上使用HTML注释还是有意义的吗?

过去,人们习惯于围绕JavaScript块打包HTML注释标签,以防止“旧”浏览器显示脚本。 即使Lynx聪明地忽略JavaScript,那么为什么有些人继续这样做呢? 这几天有什么合理的理由吗?

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

编辑:我遇到了一种情况。 在“devise视图”中,某些代码编辑器(如Dreamweaver)在引用的JavaScriptstring中被混淆,并尝试将其显示为页面的一部分。

不,绝对不是。 任何用户代理,search引擎蜘蛛,或者绝对的其他任何东西,如果它不能执行它,就足够聪明,可以忽略Javascript。

只有很短的一段时间,这完全有帮助,大约在1996年。

现在没有理由再这样做了,因为需要这些的浏览器总是从网上消失。

事实上,如果使用XHTML的话,这样做实际上会导致某些老版本浏览器尝试解释页面的意想不到的问题 – 从developer.mozilla.org :

  • Mozilla 1.1 + / Opera 7

    不要应用CSS或执行JavaScript。

  • Netscape 7.0x / Mozilla 1.0.x

    不要应用CSS,但会执行JavaScript。

  • Internet Explorer 5.5+

    无法显示文件。

该网站还链接到上述几个 问题的例子。

你应该使用CDATA,但是…

 <script type="text/javascript" charset="utf-8"> /* <![CDATA[ */ /* ]]> */ </script> 

因为如果你的代码中有'<','>','&'等,代码将不会validation:)

地狱不,没有人需要这个,如果你这样做,你还有更多的问题需要关心。 当你真的想支持那些需要的浏览器时,你必须注意更多的事情。 甚至没有谈到缺乏的CSS!

但是,更大的问题是,人们做错了。 其实你的例子是错误的,因为行

 --> 

应该读

 //--> 

其次,你input属性说“text / JavaScript”也是错的。 它已经是“text / javascript”(全部是小写),但已经过时(请参阅IANA列表 ),现在应该是“application / javascript”(请参阅另一个IANA列表) ,但JS Guru的Douglas Crockford说只是应该离开它。

另一个没有提到的问题是这样的:在HTML注释中,“ – ”是不允许的,这意味着你不能用“x–”将x递减1。

不必使用CDATA块是我喜欢使用HTML 4.01 Strict作为我的docttype的原因之一,但是,Staicu,我认为它使用了以下语法:

 <script charset="utf-8"> //<![CDATA[ //]]> </script> 

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