使用HTML注释标记<! - - >仍然与JavaScript代码相关吗?

raj*_*kvk 75 javascript browser

围绕JavaScript代码使用HTML注释标记仍然有用吗?

我的意思是

<html>
    <body>
        <script type="text/javascript">
            //<!--
            document.write("Hello World!");
            //-->
        </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Asa*_*aph 104

HTML评论,即.<!-- -->,不再需要.它们旨在允许不理解<script>标记的浏览器优雅地降级.这些浏览器,例如.Netscape 1.x在野外不再存在.因此,将HTML注释放在脚本标记中是没有意义的.

如果您希望HTML验证为XHTML或XML,您可能希望使用注释掉的CDATA标记.


<script type="text/javascript">
//<![CDATA[
document.write("Hello World!");
//]]>
</script>
Run Code Online (Sandbox Code Playgroud)

这样做的原因是为了确保你<,>,&,"'这是你的JavaScript代码部分不会有被编码为&lt;,&gt;,&amp;,&quot;&apos;分别.

  • @dreamlax:你必须将它分解成碎片.人们对`</ script>`有同样的问题,它通常被分解为`</ scr`和`ipt>`. (6认同)
  • 实际上,今天仍然可以使用围绕js代码的html注释.Googlebot会抓取在js代码中找到的"看起来像网址"的任何字符串(根据我不知道的标准),就好像它是一个链接一样.我知道这完全是贬义但确实如此.在许多情况下,您可能会使用看起来像网址但不是有效网址的字符串,因此您不希望Google的抓取工具使用无意义请求来骚扰您的服务器.有些人似乎知道他说的话确保googlebot不会抓取look-like-url js字符串,如果js代码包含在html注释中.http://goo.gl/ZRW1Y havnt试过了 (5认同)
  • 如果要将']]>'包含在字符串中,您会怎么做? (3认同)
  • @dreamlax`]]>]] <![CDATA [>`☺ (2认同)

Sas*_*gov 23

不是真的,除非你的目标是20岁的浏览器.

  • 不,Internet Explorer 2. Netscape从2.0获得Javascript支持 (6认同)

scr*_*gar 11

最好一起避免身体中的JavaScript.它使更新更容易,避免了评论需求,并迫使您为非启用JavaScript的用户以及启用了JavaScript的用户进行规划.

  • 我从我的web应用程序的当前版本的文件夹中链接我的javascript文件. (11认同)
  • 有时将所有javascript都放在`.js`文件而不是HTML中,这使得*更难*更新,因为`.js`文件可能被缓存. (8认同)
  • 许多网站和框架的另一种常见策略,例如wordpress,是将查询字符串添加到js文件URI,以便在查询字符串更改时强制重新加载文件.例如:`<script type ="text/javascript"src ="http://example.com/path/to/file.js?v1.0"> </ script> (3认同)

小智 5

不是你这样做的方式,不.

<! - 在javascript中被视为与//相同,因此您的代码应该如下所示:

<script type="text/javascript">
<!--
document.write("Hello World!");
//-->
</script>
Run Code Online (Sandbox Code Playgroud)

..与你的不同之处在于,一个罕见的晦涩难懂的浏览器可能无法理解脚本标签会打开//屏幕的开头//这样会破坏将评论标签放在首位的目的.

如果你很好奇,可以在这里找到更多相关信息:http: //www.javascripter.net/faq/comments.htm

然而,最后,即使是默认情况下不支持javascript的超级浏览器(如HTMLLayout浏览器或Netsurf)也知道最好不要在脚本标签之间呈现文本,所以不,它不再具有任何相关性.然而,您可能关心的所有浏览器都能理解<! - 语法,因此没有必要疯狂地担心将其从已有的浏览器中删除,因为它是有效的js,请记住下次不要添加它.