You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IE11误将注释内双短横线识别为结束标签,报错求解决方案

解决IE11中注释内双短横线导致的HTML解析错误

这个问题我太熟了——IE11对HTML注释的解析有个非常顽固的老bug:它会把注释内容里连续的两个短横线--之后的字符误判为注释结束标签的一部分,哪怕这俩短横线是CSS类名的分隔符(就像你例子里的block--attribute),直接抛出"Unexpected character in comment end. Expected "-->"."的错误。

给你几个实用的解决办法,按推荐程度排序:

方案一:拆分注释,避免连续--出现在注释内

这是最省心的方法,不需要修改原代码的类名,只是把注释里的双短横线拆成两段,中间插一个空注释:

<!-- <div class="block-<!-- -->-attribute"></div> -->

这样原类名在实际恢复代码时还是完整的block--attribute,但IE11会把拆分后的-<!-- -->-当成普通内容,不会误判为注释结束标记。

方案二:临时替换类名中的双短横线

如果只是临时注释代码,不需要严格保留原类名的话,直接把--改成单短横线或者下划线这类分隔符:

<!-- <div class="block-attribute"></div> -->
<!-- 或者用下划线:<div class="block__attribute"></div> -->

这种方法简单直接,完全避开了IE11的bug触发点。

方案三:用HTML实体替换双短横线

把注释里的--替换成短横线的HTML实体&#45;&#45;,这样IE11解析注释时不会把它识别为注释结束符号:

<!-- <div class="block&#45;&#45;attribute"></div> -->

注意:之后如果要恢复这段代码,记得把实体改回原来的双短横线。

方案四:针对IE的条件注释

利用IE特有的条件注释,让IE11直接跳过这段可能触发bug的注释内容,现代浏览器不受影响:

<!--[if !IE]> -->
<!-- 这里放你的原注释代码,IE11会忽略这段 -->
<!-- <div class="block--attribute"></div> -->
<!-- <![endif]-->

不过这种方法只适用于IE浏览器,现在IE基本被淘汰,但如果你的项目还必须兼容IE11,这也是个可行的办法。

内容的提问来源于stack exchange,提问作者Aerra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:14:23