在JavaScript块上使用HTML注释仍然有意义吗?
过去,人们习惯于将HTML注释标记包装在JavaScript块周围,以防止“旧”浏览器显示脚本。即使是Lynx也足够聪明,可以忽略JavaScript,那么为什么有些人一直这样做呢?这些天有什么正当的理由吗在JavaScript块上使用HTML注释仍然有意义吗?,javascript,html,Javascript,Html,过去,人们习惯于将HTML注释标记包装在JavaScript块周围,以防止“旧”浏览器显示脚本。即使是Lynx也足够聪明,可以忽略JavaScript,那么为什么有些人一直这样做呢?这些天有什么正当的理由吗 <script type="text/javascript"> <!-- //some js code //--> </script> 编辑:我确实遇到过一种情况。有些代码编辑器,如Dreamweaver,在“设计视图”中被JavaScript字符串
<script type="text/javascript">
<!--
//some js code
//-->
</script>
编辑:我确实遇到过一种情况。有些代码编辑器,如Dreamweaver,在“设计视图”中被JavaScript字符串中引用的HTML弄糊涂了,并试图将其显示为页面的一部分。不,绝对不是。现在,任何用户代理、搜索引擎蜘蛛或任何其他东西都足够聪明,如果无法执行Javascript,就可以忽略它
仅仅在很短的一段时间内,这一切都是有帮助的,那是在1996年左右。再也没有理由这样做了,因为需要这样做的浏览器基本上已经从网络上消失了 事实上,如果使用XHTML-from,那么这样做实际上会导致某些旧浏览器试图解释页面时出现意外问题:
- 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>
/* */
因为如果代码中有“”、“&”等,代码将无法验证:)不必使用CDATA块是我喜欢使用HTML 4.01 Strict作为docttype的原因之一,但是,Staicu,我认为它使用了以下语法:
<script charset="utf-8">
//<![CDATA[
//]]>
</script>
//
也许两者是等价的?有人知道其中一个比另一个更有优势吗?该死的,没有人再需要这个了,如果你需要的话,你会有更多的问题需要关心。当你真的想支持那些需要的浏览器时,你必须注意更多的事情。甚至都不谈css的缺乏 然而,更大的问题是,人们做错了。实际上你的例子是错误的,因为
-->
应该读
//-->
其次,您输入的属性表示“text/JavaScript”也有问题。它一直是“text/javascript”(全小写),但这已经过时了(请参阅),现在应该是“application/javascript”(请参阅)。然而,JS大师道格拉斯·克罗克福德(Douglas Crockford)说,你应该把它删掉
另一个没有人提到的问题是:在HTML注释中,不允许使用“--”,这意味着不能使用“x-”将x减量1。我想这与小Ken Keyes的“猴子/香蕉/梯子/喷水器”有关实验。人们一直这样做,因为他们只是看到这样做,但从不问为什么。
-->
应该是/-->
。如果你想兼容XHTML,否则就不需要它。如果你真的想在格式良好的XML文档中使用Javascript,请将它放在一个外部.js文件中。例如,Mozilla XUL应用程序req请注意这一点。+1-每个人都应该努力做到与XHTML兼容,即使你必须考虑到一些怪癖。有各种XML解析库/工具,如果它验证了你的XHTML,它们将不会与你的XHTML混淆。我们不要把XHTML变成新的草率HTML“过渡”。你也可以解析HTML;HTML也可以变得有效;;)虽然有点不同,但就我个人而言,我更喜欢使用//和//]>
-只是感觉更整洁,更容易阅读。哈哈-有罪!但是后来,我在1996年学会了这样做,没有人说过不同的话……我想我已经读到过它被弃用了,但我找不到链接//是行注释,/**/是块注释。您可以使用其中任何一种,对于javascript来说都是一样的(有注释)。但是您忘了设置type=“text/javascript”type=“text/javascript”被浏览器忽略,取而代之的是服务器发送的MIME类型。安德鲁:我不明白。这是一个嵌入在HTML文档中的脚本,text/javascript
从何而来?另外,如果没有src
属性,我认为不应该使用charset
属性,因为charset
属性指定使用src
属性链接的文件的字符集。