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" ? '\n' : 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的异同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值