Chr*_*ton 4 html unicode innerhtml string-length html-entities
为什么实体的 长度为6而实体的↓长度为1?这是在规范的某个地方吗?(在Firefox,Chrome和Safari中测试过.)
我同意这是非常奇怪的行为,但至少它是指定的.
HTML 片段序列化算法表明:
转义字符串(出于上述算法的目的)包括用字符串"&"替换"&"字符的任何出现,字符串"<"出现"<"字符的任何出现,任何出现的" >"字符串">"字符",字符串"" 出现的任何U + 00A0 NO-BREAK SPACE字符,如果在属性模式中调用算法,则出现""字符的任何出现字符串""".
我的重点.如果我不得不猜测这是为了支持旧版浏览器的向后兼容性,并在反序列化和序列化字符串时获得一致的行为.如果浏览器序列化DOM树的结果,<div> </div>将其<div> </div>反序列化为DOM树,则会产生单个空格*.这几乎是浏览器实现一致行为的唯一方式.
↓另一方面,更换是完全安全的,也是有道理的.
如果您真的对文本中存储的字符串长度感兴趣,那么.textContent您将得到您感兴趣的结果.
*好吧,不是真的,因为它仍然是 U+00A0- 但我可以理解为什么人们认为它可能在早期的DOM时代令人困惑
| 归档时间: |
|
| 查看次数: |
397 次 |
| 最近记录: |