You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在HTML中写入&amp而不转为&?转义转义的实现方法

如何在HTML中输出&amp而不被自动转义

嘿,这个场景我之前做技术文档展示的时候碰到过!浏览器会自动解析HTML里的实体引用(比如&会被转成&),所以直接写&amp的话,最终会变成&amp,完全不是你想要的效果。要实现“转义的转义”,核心就是阻止浏览器解析目标字符串里的&,下面给你两种实用的解决方法:

方法一:手动双重转义&符号

既然浏览器会把&解析成&,那我们就把目标字符串里的&再次转义一次。

你想要输出的是&amp,其中第一个字符是&,我们把它换成&,最终写成:

&amp

浏览器解析时,会先把&转换成&,剩下的amp;amp直接显示,最终页面上就会出现你要的&amp

方法二:用JavaScript插入纯文本

如果是动态生成内容,或者不想手动处理一堆转义字符,用JavaScript创建文本节点是更省心的方式——文本节点里的内容不会被HTML解析器处理,完全按照原始字符串输出。

示例代码:

// 创建纯文本节点,内容就是你要输出的字符串
const targetText = document.createTextNode('&amp');
// 把节点插入到你想要的位置,比如某个容器里
document.getElementById('your-target-container').appendChild(targetText);

这样不管字符串里有多少实体引用,都会原封不动地显示在页面上。

补充说明

为什么直接写&amp不行?因为HTML解析器会优先识别&开头的实体,它会把&解析成&,剩下的amp就直接跟在后面,最终显示成&amp——这就是你之前遇到的自动转换问题。所以关键就是让那个开头的&不被解析,要么转义它,要么用纯文本方式插入。

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

火山引擎 最新活动