P:浏览器IE对空白字符的处理
来源:互联网 发布:软件测评 编辑:程序博客网 时间:2024/06/14 06:59
someday有个同事提交测试结果:很多功能根本就不能用,要么点击无效,要么请求失败,各种各种。我的心里咯噔一下,这个系统已经开发了一年,而且很多客户都在用,难道都要返厂升级?(这次可是老板亲自把关,让我的老脸往哪儿搁?忐忑不安中~~)
然后就针对他反映的bug,一个一个重新测试,奇怪的是都未重现,我用的是IE8做测试,所以一直相安无事。后让他用IE浏览器的兼容模式(原IE11)去测试,bug消失了。还与高版本的浏览器不兼容? 调试之后才知道,是代码写的不严谨,直接用标签的内容与指定文本比较:
$(selector).html() == "something "
为了结构清晰,代码大都采用了缩进的方式,而不同浏览器对缩进,即空白和换行的处理方式是不同的!
IE8-, 在创建DOM树时,会忽略这些空白字符;
IE9+、FireFox、Chrome等浏览器,会把空白字符或换行作为文本节点来处理。
测试示例:
标签下若直接是文本信息,Dom 会直接将空文本节点和实际的文本生成一个节点,效果不是很明显。
故将文本包含在i标签内。遍历父容器(div)的所有子节点(childNodes)。
(还原文本: ?代表回车;+代表空格)
<div id="divTest"><i>Hello</i></div>
获取子节点信息:
//子节点信息模板var tdTmpl = "<tr><td>{0}</td><td>{1}({4})</td><td> {2}</td><td>{3}</td></tr>"//节点类型说明var arrNodeType = ["", "Element", "Attribute", "Text"];var subNodes = document.getElementById('divTest').childNodes;var v_msg = [];for(var i = 0, len = subNodes.length; i < len; i++){var curNode = subNodes[i],ntype = curNode.nodeType,nvalue = ntype == 3 ? curNode.data : curNode.innerHTML,nvalue_rp = ShowWitheSpace(nvalue);v_msg.push(tdTmpl.format(i+1, ntype, nvalue, nvalue_rp, arrNodeType[ntype]));}$("#tblNodeData tbody").html(v_msg.join(""));
IE10 下的空白字符处理:
IE7(兼容模式)的空白字符处理:
![IE7-空白字符处理](http://img.my.csdn.net/uploads/201504/10/1428665805_5125.png)
参考资料:
http://www.w3school.com.cn/xmldom/dom_mozilla_vs_ie.asp
http://w3help.org/zh-cn/causes/SD9003
http://segmentfault.com/q/1010000000398015
https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Whitespace_in_the_DOM
- P:浏览器IE对空白字符的处理
- div和p对IE浏览器的兼容程度
- 怎么处理HTML5的新标签对IE浏览器兼容问题?
- c#处理空白字符
- c# 处理空白字符,空白字符是指在屏幕不会显示出来的字符
- 关于IE中不同版本浏览器对parseFloat的处理问题
- 各浏览器对小数处理取整的情况对比【IE、chrome、firefox、safari】
- ie浏览器对DWR支持的bug~~
- IE浏览器对域名的限制
- 实现ie浏览器对placeholder的兼容
- 对C标准中空白字符的理解(转)
- 各浏览器处理空白和换行的差异
- C里面的scanf对于空白字符的处理
- C里面的scanf对于空白字符的处理
- XAML中的特殊字符以及空白的处理
- 各浏览器对 URI 中非 ASCII 字符的处理有差异
- IE浏览器中div和li包裹的img有5px空白的解决方案
- Windows7下删除假顽固IE浏览器(或空白图标)的根本方法(中毒严重)
- Android优酷播放器SDK——Eclipse工程迁移Android Studio遇到问题
- .xcassets资源问题
- MaterialUp - 寻找材料设计灵感必备的网站
- 《大规模web服务开发技术》阅读笔记
- FreeMarker教程
- P:浏览器IE对空白字符的处理
- ubuntu 14.04 使用git 和 github
- cocos2dx游戏只关卡开发
- 【SDOI2015】游记Day0
- 全排列递归实现
- Could not find class 'com.example.adapter.MyCursorAdapter' referenced from method com.example..
- 日常记录20150410
- 鼠标添加右键菜单
- FreeMarker实例讲解