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

Dio*_*ane 66 html javascript

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

<script type="text/javascript">
<!--
//some js code
//-->
</script>
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*rkR 73

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

只有一个非常短暂的时期,这一点都很有帮助,而且大约在1996年.

  • 哈哈 - 有罪!但是后来,我在1996年学会了这样做,没有人说过不同的...... (6认同)

Con*_*oyP 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+

    无法显示文档.

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


Ion*_*icu 14

你应该使用CDATA ...

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

/* ]]> */
</script>
Run Code Online (Sandbox Code Playgroud)

因为如果你的代码中有'<','>','&'等,代码将无法验证:)

  • 如果你想要符合XHTML,否则你不需要这个. (11认同)
  • 如果您真的想在格式良好的XML文档中使用Javascript,请将其放在外部.js文件中.例如,Mozilla XUL应用程序需要这样做. (4认同)
  • 虽然差别很小,但我个人更喜欢使用`// <![CDATA [`和`//]]>` - 只是感觉有点整洁,更容易阅读. (2认同)

Tim*_*the 11

不,不,没有人需要这个,如果你这样做,你还有一些问题值得关注.当你真的想要支持那些需要它的浏览器时,你必须要注意更多的东西.甚至没有谈论缺乏CSS!

然而,更大的问题是,人们做错了.其实你的例子是错的,因为这一行

-->
Run Code Online (Sandbox Code Playgroud)

应该读

//-->
Run Code Online (Sandbox Code Playgroud)

其次,你输入属性说"text/JavaScript"也有什么不对.它一直是"text/javascript"(全部小写),但这已经过时了(参见IANA列表),现在它应该是"application/javascript"(参见另一个IANA列表.但是,JS Guru的Douglas Crockford说你只是应该把它留下来.

没有人提到的另一个问题是:在HTML注释中," - "是不允许的,这意味着你不能使用"x--"将x减1.