仅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,都会变成一个空格
相关推荐
-
JS 动态获取节点代码innerHTML分析 [IE,FF]
<div id="parentnode"> <span id="childnode">child</span> </div> <script type="text/javascript"> var childNode = document.getElementById("childnode") , parentNode = document.getElementByI
-
js的.innerHTML = ""IE9下显示有错误的解决方法
问题: 在用js动态创建html页面时: 复制代码 代码如下: var tab = document.createElement("table"); tab.innerHTML += "<td>订货单号</td>"+ "<td>单据日期</td>"+ "<td>商品类型</td>"+ "<td>订单属性</td>"
-
IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解决方案
IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值,重现代码如下 复制代码 代码如下: <!DOCTYPE html><html> <head> <meta charset="utf-8"/> <title>IE6-IE9中tbody的innerHTML不能复制bug</title> </head> <body style=&quo
-
IE innerHTML,outerHTML所引起的问题
innerHTML或是outerHTML 比如说: 复制代码 代码如下: var crtDIV = document.getElementById('divIDName'); if (crtDIV) { crtDIV.parentNode.removeChild(crtDIV); crtDIV.outerHTML = ""; } 就有可能发现,整个界面都是无法选中,只有链接才可点击. 解决这方面的异常或是IE错误,只有: 不用outerHTML,或innerHTML. 如果是用到了in
-
IE6/7/8/9中Table/Select的innerHTML不能赋值的解决方法
IE6/7/8/9中Table/Select的innerHTML赋值会报错,如下 IE6/7/8/9中TABLE的innerHTML不能赋值 try{ var table = document.createElement('table'); table.innerHTML = ' Test table innerHTML ' document.body.appendChild(table); }catch(e){ alert(e); } [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
-
解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
前言: 这是一个老bug了,现在提供一个完美解决方案.由于我一直是用createElement来创建动态的option并添加,所以一直没有遇到这个问题,但是每个人写代码风格不同,有的人就喜欢写字符串形式的标签并用innerHTML插入,这不就有问题了,为了方便不同编码风格的人,我封装了一个方法,用于解决ie的这个bug和兼容5大浏览器,这样大家都可以用一个方法来实现不同的风格,便于维护管理. bug描述: 在ie下面使用innerHTML来插入option选项的话,ie会去掉前面的<option
-
innerHTML 和 getElementsByName 在IE下面的bug 的解决
比如有这样一个问题. 复制代码 代码如下: <div id="playlist"> </div> 在这div 中,加入一个播放吗列表.这列表用innerHTML 加入. 复制代码 代码如下: var plst = null; plst = player.getPlaylist(); if (plst) { var txt = ''; for(var i in plst) { txt += '<a name="fv_item_a_' + i + '
-
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
复制代码 代码如下: <script> document.getElementById("trone").innerHTML = "<td>haha</td>"; </script> <tr id="trone"> </tr> 在IE中,有时候会出现"未知的运行时错误(unknown runtime error)",而在firefox里不会. 这主要是IE
-
IE 下的只读 innerHTML
今天做东西遇到一个问题,我试图动态为一个表格添加多行数据,先定义了一个table: 复制代码 代码如下: <table> <thead> </thead> <tbody id="filelist"> </tbody> </table> 然后在JavaScript 中这样操作: 复制代码 代码如下: for(var i in entries){ ... var filetable = document.getElem
-
IE6-IE9不支持table.innerHTML的解决方法分享
测试代码: 复制代码 代码如下: <table id="test"> </table> <script> var oTable=document.getElementById("test"); oTable.innerHTML="<tr><td>innerHTML</td></tr>"; </script> 上述代码在IE6-9中无效,直接报错: IE
-
IE6与IE7中,innerHTML获取param的区别
代码: 复制代码 代码如下: <html> <head> <script type="text/javascript"><!-- function setMode(newMode) { var text1=document.getElementById("text1"); var cont; bTextMode = newMode; if (bTextMode) { cont=text1.innerHTML; text1.i
-
IE bug table元素的innerHTML
首先时飘忽不定的collapse的border,ie6偏偏有一个地方与其他浏览器表现不同,一条丑陋的border不管怎么样都显示出来.无解. 上面的问题可以用诡异方法解决的话,那接下来就完全没有办法了. 由于涉及到了数据的异步传输和实时显示,于是自己写了一个前端模版通过innerHTML动态更新数据.其他浏览器都工作正常,偏偏ie怎么都出不来数据.排查了半天,结果是IE的table元素为只读,不能使用innerHTML!!!! 同样为只读的元素还有COL, COLGROUP, FRAMESET,
随机推荐
- .Net 项目代码风格要求小结
- JavaScript表达式:URL 协议介绍
- 如何配置apache虚拟主机的实例小结
- Win2003下配置iis+php+mysql+zend图文 使其支持asp,.net,cgi,perl和php
- TortoiseSVN使用教程
- perl子程序的运用及子程序中变量私有(my)声明的重要性
- 两个数组去重的JS代码
- C语言 makefile学习及实现实例
- 浅谈C语言中strcpy,strcmp,strlen,strcat函数原型
- javascript日期对象格式化为字符串的实现方法
- 微信小程序 wx:key详细介绍
- 在MySQL中使用通配符时应该注意的问题
- Javascript Tab 导航插件 (23个)
- mysql的启动过程详解
- PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
- 用户目录上只用了几十M ,为什么在后台显示用了500M了呢
- Linux中find命令的用法汇总
- 简述Android中实现APP文本内容的分享发送与接收方法
- vue-router实现编程式导航的代码实例
- bootstrap里bootstrap动态加载下拉框的实例讲解