zoukankan      html  css  js  c++  java
  • 【一天一道兼容性】之——IE6、7、8中的空格、折行

    demo1:

    1 <p id="p"> 123</p> <!--1之前有个半角空格-->
    2 <script>
    3      var p = document.getElementById("p");
    4      alert(p.innerHTML.length)  //IE6、7、8弹出3,忽略了空格     标准浏览器弹出4 没有忽略空格
    5 </script>

    解析1:

    1 alert(p.innerHTML.charAt(0) == "\u0020")  //IE6、7、8的charAt(0)为1     标准浏览器的charAt(0)为"\u0020" 

    demo2:

    1 <p id="p">
    2         123</p>     <!--1之前添加一个回车-->
    3 <script>
    4      var p = document.getElementById("p");
    5      alert(p.innerHTML.length)  //IE6、7、8依然是3   标准浏览器:12
    6 </script>

    解析2:

    1 alert(p.innerHTML.charAt(0)=="\u0020") //标准浏览器:false
    2 alert(p.innerHTML.charAt(0)=="\n")     //标准浏览器:true
    3 alert(p.innerHTML.charAt(1)=="\u0020") //标准浏览器:true
    4                          .                         true
    5                          .                         true
    6                          .                         true
    7 alert(p.innerHTML.charAt(8)=="\u0020") //标准浏览器:true            

    demo3:

    1 <p id="p">
    2         123   <!--前后两次回车-->
    3 </p>
    4 <script>
    5      var p = document.getElementById("p");
    6      alert(p.innerHTML.length) //IE6、7、8弹出4   标准浏览器:17
    7 </script>

    解析3:

    1 alert(p.innerHTML.charAt(3)=="\n")       //IE6、7、8:false
    2 alert(p.innerHTML.charAt(3)=="\r")       //IE6、7、8:false
    3 alert(p.innerHTML.charAt(3)=="\u3000")   //IE6、7、8:false
    4 alert(p.innerHTML.charAt(3)=="\u0020")   //IE6、7、8:true

    总结:不同编辑器,不同的模板会产生不同的折行或者空格,所以用childNodes会比较麻烦

    建议解决方法

    1 p.innerHTML.replace(/\n+|\r+|\u0020\|\u3000/g,"");
  • 相关阅读:
    最新的Zynq资料整理
    异步FIFO的FPGA实现
    Mac 下安装PHP遇到的问题
    php 实现推技术comet(转)
    高性能分布式内存队列系统beanstalkd(转)
    应对Memcached缓存失效,导致高并发查询DB的四种思路(l转)
    memcache 缓存失效问题(转)
    PHP.ini文件读取不到
    PHP5中魔术方法
    python mysql 单引号字符串过滤
  • 原文地址:https://www.cnblogs.com/ccto/p/3021346.html
Copyright © 2011-2022 走看看