zoukankan      html  css  js  c++  java
  • innerText引发的错误

       

      因为firefox对innerText的不支持,所以以下代码在firefox里运行有错误。  

           //重新加载饼图
                if ($("#hidden_strTitle").val() != "2") {
                    var gridView = document.getElementById("GridViewlb");
                    var sum1 = gridView.rows[rowIndex + 1].cells[1].innerText;
                    var sum2 = gridView.rows[rowIndex + 1].cells[2].innerText;
                    var sum3 = gridView.rows[rowIndex + 1].cells[3].innerText;
                    var sum4 = gridView.rows[rowIndex + 1].cells[4].innerText;
                    var sum5 = gridView.rows[rowIndex + 1].cells[5].innerText;
                    var sum6 = gridView.rows[rowIndex + 1].cells[6].innerText;
                    createPieChart(sum1, sum2, sum3, sum4, sum5, sum6);
                }

      为了让上段代码在firefox里运行也正确,需要对innerText作一定的处理,textContent在一程度上可以代替innerText,但contentText有个缺点:文本中间的空白符会被无情的抹去,所以将文本间的空白符保留下来。为innerText适应firexfox,只需在页面中加入如下代码:

    <script type="text/javascript">
            function isIE(){//ie?
                if (window.navigator.userAgent.toLowerCase().indexOf("msie") >= 1) {
                    return true;
                }
                else {
                    return false;
                }
            }
    
            if(!isIE()){ //firefox   innerText   define
                HTMLElement.prototype.__defineGetter__("innerText",
                    function() {
                        var anyString = "";
                        var childS = this.childNodes;
                        for (var i = 0; i < childS.length; i++) {
                            if (childS[i].nodeType == 1) {
                                anyString += childS[i].tagName == "BR" ? '
    ' : childS[i].innerText;
                            }
                            else if (childS[i].nodeType == 3) {
                                anyString += childS[i].nodeValue;
                            }
                        }
                        return anyString;
                    }
                  );
                  HTMLElement.prototype.__defineSetter__("innerText",
                    function(sText){
                      this.textContent=sText;
                    }
                  );
            }
        </script>

      结果,程序能正确运行了。

      

      

      这里有篇文章关于firefox与IE对javascript的异同

  • 相关阅读:
    css中后代、元素、类、id选择器以及行间style优先级的比较
    JS小功能x系列6文字自动滚动
    JS小功能系列7自动打字
    JS小功能系列6折叠
    JS小功能系列5图片左右移动
    JS小功能系列4图片轮播综合数字轮播,顺时针逆时针,自动轮播
    JS小功能系列3时钟
    JS小功能系列2商品计算
    JS小功能系列1换一批
    JS隔行变色,鼠标悬停变色
  • 原文地址:https://www.cnblogs.com/danshui/p/3275870.html
Copyright © 2011-2022 走看看