当我从javascript中使用innerHTML时,浏览器(至少Safari和Firefox)似乎用它们的命名实体替换了某些字符和数字实体。
字符\xa0(不间断空格)替换为 
<(小于)替换为<。但例如,元音变调并没有被ü取代。
我没有找到任何关于这种行为的文件。
一个简单的演示:

<h2 id="withoutnbsp">This does not use en be es pe (uses the \xa0 character)</h2>
<script>alert(document.getElementById("withoutnbsp").innerHTML);</script>

在这里可以找到更详细的演示:
http://gist.github.com/89434
您可以使用gist页面上的“raw”链接在浏览器中查看它。
我需要知道HTML中到底替换了哪些字符。如有任何帮助,我们将不胜感激。谢谢。

最佳答案

HTML5规范中有一些规则,用于在调用HTML片段的innerHTML时对其进行序列化,如下所述:Serializing HTML fragments(注意innerHTML不在HTML4规范中,所以HTML5规范是当前引用)。
规范的TLDR版本:空格、尖括号、与号、等号和双引号是调用innerHTML时唯一转义的字符。

关于javascript - 关于特殊字符/实体和innerHTML是否有任何规则?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/711720/

10-15 15:10