TL; DR:不幸的是,不,这是不可能的(而且永远不会)。
简短答案:
HTML注释并不是很多人认为的那样。HTML是SGML的一种形式,其中注释用双破折号(--...)分隔。 --)。
因此,在一对尖括号内的任何一对双破折号都带有一个尖括号,该尖括号在开括号(<! --⋯ -- >)之后。规范说得比我更好:http : //www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.4
这就是为什么这样的评论(我们都可能已经做过一次或多次)是一个坏主意的原因:
<!-------------------标题从这里开始--------------------->
真相:我懒得告诉您上述标记污染代表了多少评论,但至少有10条。
我不那么懒惰:所谓的“评论”实际上包括10条评论,任何评论之外的三个词(即,糟糕的SGML)以及未终止的评论的开头。真是一团糟:
<!--1 ----2 ----3 ----4 ----5--
标头从这里开始
--6 ----7 ----8 ----9 ----10-- -->
当然,这不是很简单,因为在每个浏览器选择如何解释规范的差异。
这是一篇很好的文章,对它进行了解释:
http://weblog.200ok.com.au/2008/01/dashing-into-trouble-why-html-comments.html
长答案:为什么我们弄错了
我们大多数与HTML一起成长的人(没有深入研究作为其基础的SGML)已经开始相信该字符串<!--以注释开头,并且该字符串-->以注释结尾。
其实,<!和>界定你的HTML文档内的SGML声明,如DOCTYPE声明我们都看到在我们的网页上。在 SGML声明中,注释用双破折号分隔。因此,HTML注释
<!-这是评论->
我们大多数人会认为这样解析的<!-- this is a comment -->实际上是这样解析的:
<!-- this is a comment -->。这是一个SGML声明,除注释外为空。
因为HTML是SGML的一种形式,所以“声明内的注释”充当HTML注释。
出于兴趣,下面是一个纯SGML块,它显示了注释在SGML中的预期功能:此属性列表定义在每一行包含一个注释:
<!ATTLIST链接
%attrs; -%coreattrs,%i18n,%events-
字符集%字符集; #IMPLIED-链接资源的char编码-
href%URI; #IMPLIED-链接资源的URI-
hreflang%LanguageCode; #IMPLIED-语言代码-
类型%ContentType; #IMPLIED-咨询内容类型-
rel%LinkTypes; #IMPLIED-转发链接类型-
rev%LinkTypes; #IMPLIED-反向链接类型-
媒体%MediaDesc; #IMPLIED-用于在这些媒体上呈现-
>