在 HTML 中,标记和实体不会在 <script>
标记内被解析,并且 </
立即结束标记。因此,
<script><b>fun & things</
将为您提供一个包含确切内容的脚本标签 <b>fun & things
。
如果您包含 JSON 并且想要在脚本中包含字符 </
,那么您可以将其替换为 <\/
因为这些字符出现的唯一位置是在字符串中, 和 \/
是一个转义序列,可以变成一个正斜杠。
但是,如果您不使用 JavaScript,那么这个技巧就不起作用。在我的例子中,我试图将 <script type="math/tex">
插入到源中,以便 MathJax 处理它。有没有办法在原始 HTML 源代码中转义 </
? (我没有特别需要 </
但我正在编写一个通用工具并希望能够使用任何文本。)
(可以在 JavaScript 中创建脚本标签并填充其 innerText
,但我使用的是原始 HTML,所以我不能这样做。)
原文由 Sophie Alpert 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 HTML 中,与 XHTML 相反,
script
元素的内容被处理为纯文本,除了出现结束标记,因此</
结束处理并且必须符合文档,开始结束标记</script>
。没有避免这种情况的通用机制。任何规避此功能的方法都不可避免地依赖于元素内部使用的“语言”。 “语言”一词在这里用引号引起来,因为内容可以是任何东西,只要您的代码可以解析和处理它即可。所以:没有通用机制,但对于 JavaScript 或某些浏览器识别的少数其他客户端脚本语言以外的内容,您可以制定自己的规则。