当我从javascript使用innerHTML时,浏览器(至少Safari和Firefox)似乎用它们的命名实体替换某些字符和数字实体.
字符\xa0
(非中断空格)被替换为
,
<
(小于)被替换为<
.但是例如变形金刚ü不会被取代ü
.
我没有找到任何有关此行为的文档.
一个简单的演示:
This does not use en be es pe (uses the \xa0 character)
可以在这里找到更精细的演示:
http://gist.github.com/89434
您可以使用gist页面上的"raw"链接在浏览器中查看.
我需要确切地知道innerHTML替换了哪些字符.任何帮助表示赞赏.谢谢.
HTML 5规范具有在您调用innerHTML时序列化HTML片段的规则,在此处记录:序列化HTML片段(请注意,innerHTML不在HTML 4规范中,因此HTML 5规范是当前引用).
规范的TLDR版本:空格,尖括号,&符号,等号和双引号是调用innerHTML时唯一可以转义的字符.