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的异同

  • 相关阅读:
    android studio 开发环境配置
    解决 php-cgi 启动时提示缺少 msvcr110.dll 的问题
    PHP5.5 + IIS + Win7的配置
    PHP版本VC6和VC9、Non Thread Safe和Thread Safe的区别
    [6]Telerik TreeView 复选框
    详解.NET IL代码(一)
    第三章 续:时间控件(TimePicker)
    第二章 时间控件(DateTime Picker)
    jquery常用方法
    RESTClient
  • 原文地址:https://www.cnblogs.com/danshui/p/3275870.html
Copyright © 2011-2022 走看看