思考这个问题的几种方法。自己决定哪个对你最有用……</p>
- javascript 可以使用“xmp”类重新创建已弃用的 <xmp> 标记吗?
- 我们可以在内联代码中模仿 SO 的降价处理器的转义标签吗?
- (metaSO,我承认) SO 的 md 处理器如何在内联代码中转义标签?
- 我们可以在 HTML 中嵌入的 markdown 代码块中转义 < 吗?
目标:一个逃逸的类<
,允许该类包含文本<html>、<body>、<head>、<script>、<style>、<body>,以及任何其他不属于< body> 或经过特殊处理,无需特殊处理。
<xmp> 实现了这一点(实际上继续 - 已弃用但仍受浏览器支持):<xmp><body></xmp>
就像<body>
. SO 的降价处理器在内联代码中实现了这一点:显示<body>
只需写 `<body>`(它本身就是 \`<body>\` 并且不能包含在 SO 代码块中……我不是唯一可以使用的人这个 ;)
到目前为止,我的解决方案(全部<
替换<
为)处理了不太特殊的 HTML 标记(这些在 <body> 内的静态内容标记有名称吗?<div>、<code>、<span> 等),但是“特殊”标签仍然必须以 < 开头 而不是 <
Javascript:
xmps = document.getElementsByClassName('xmp');
for (var i = 0; i < xmps.length; i++) {
var xmp = xmp.item(i);
var newhtml = xmp.innerHTML.replace(/\>/g,"\>").replace(/\</g,"\<");
xmp.innerHTML = newhtml;
}
这样我就可以写了<div class="xmp"><body></div>
。
什么将允许
<div class="xmp"><body></div>
?
或者怎么样?
<div class="xmp">
<body>
&/div>
</div>
我的项目的细节可能很重要:会有降价,class="xmp"
所以我们需要小心 line-initial >
。没有用户输入,因此安全性不是(?)问题。我希望有一个不使用 jQuery 的解决方案。