html5中文学习网

您的位置: 首页 > 网站及特效实例 > javascript特效 » 正文

仅IE6/7/8中innerHTML返回值忽略英文空格的问题_javascript技巧_

[ ] 已经帮助:人解决问题
如下
复制代码 代码如下:

<div id="user"> jack</div>
<script>
alert(document.getElementById('user').innerHTML.length);
</script>


div[id=user]中的文本"jack"前有两个英文空格,各浏览器下结果如下

IE6/7/8 : 弹出4,即忽略了空格

IE9/Firefox/Safari/Chrome/Opera : 弹出6,即没有忽略空格

另换成中文空格不会有这个问题。

以下是Gray Zhang的补充:
1、IE6-8下,对于一个元素的firstChild,如果其为TextNode,且nodeValue前n个字符为空格字符(包括空格、/t、/n、/r和一个分页符号U+000C),则这n个字符被忽略
2、在IE6-8下,对一个元素的lastChild,如果其为TextNode,且nodeValue最后n个字符为空格字符(包括空格、/t、/n、/r和一个分页符号U+000C),则这n个字符会被合并为一个空格(ASCII码为32),无论你是/t还是/n,都会变成一个空格
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助