HTML中需转义特殊字符(如

HTML里怎么原样显示<script></script>这种标签内容
直接写进HTML会触发解析,浏览器以为你要执行代码,结果要么消失、要么报错。必须把特殊字符转义成HTML实体,或者用<pre class="brush:php;toolbar:false;"><code></code>包裹并设置<code>textContent</code>或<code>innerHTML</code>安全处理。</pre>
→ <code>,<code>>→>,&→&(手动转义最稳妥)- 如果从JS动态插入,别用
innerHTML = str,改用element.textContent = str,自动规避解析 -
<pre class="brush:php;toolbar:false;"><code class="html"><div id="app"></div></code></pre>是标准做法,配合prism.js或highlight.js能高亮
JSON/XML示例在网页里不换行、不缩进?
浏览器默认忽略HTML里的空白符,<pre class="brush:php;toolbar:false;"></pre>能保留换行和空格,但XML/JSON本身缩进容易被压缩工具删掉,上线前要确认源码是否保留了格式。
- JSON示例建议用
JSON.stringify(obj, null, 2)生成带缩进的字符串再塞进<pre class="brush:php;toolbar:false;"><code></code></pre> - XML别用
innerHTML直接插原始字符串,否则<tag></tag>会被解析;先document.createTextNode(xmlStr)再append - 如果用
<textarea readonly></textarea>显示,也能100%保真,适合调试场景
prism.js高亮JSON但显示成乱码?
常见原因是HTTP响应头没设Content-Type: text/html; charset=utf-8,或者HTML文件本身没声明<meta charset="utf-8">,中文或特殊符号就变。
- 检查浏览器开发者工具的“Network”页签,看响应头中
charset是否为utf-8 <pre class="brush:php;toolbar:false;"><code class="json"></code>中的<code>class</code>值必须和Prism加载的语言插件名一致(比如<code>language-json</code>对应<code>prism-json.js</code>)</pre>- 不要在
<code>里混用或<br>,会破坏Prism的token解析逻辑
为什么XMLHttpRequest返回的XML字符串直接innerHTML会崩?
因为XML里有<foo attr="bar"></foo>这种结构,浏览器会当成HTML标签去解析,遇到非法嵌套或未闭合标签就静默失败或截断。
- 正确做法:用
responseXML属性(如果是XML响应),或用DOMParser解析字符串:new DOMParser().parseFromString(xmlStr, "text/xml") - 如果只是想展示原文,仍走
textContent或textarea路线,绝不走innerHTML - 注意
DOMParser出错时返回的document里会有<parsererror></parsererror>节点,可据此判断XML是否合法
实际项目里最常漏的是charset声明和textContent与innerHTML的误用,这两处一错,整个代码块就不可读。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











