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


如下

复制代码 代码如下:

<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,都会变成一个空格



相关阅读:
在php和MySql中计算时间差的方法
IE 下的只读 innerHTML
实现聊天室在线人员无刷新所需要的javascript技术
JAVASCRIPT 客户端验证数据的合法性代码(正则)
语义化的网页:XHTML语义化标记
多浏览器兼容的动态加载 JavaScript 与 CSS
Windows 7设备高清多图标赏析
RequisitePro安装和Oracle环境的部署
css实现热点(hotspot,地图提示)
利用迭代器在.NET中实现“超轻量级线程”
JS 建立对象的方法
discuz 分类信息设置教程(图文教程、DZX系列)
用CSS开发时髦的导航栏图例教程
php网页后退不再出现过期
快速导航

Copyright © 2016 phpStudy |