ext js 在ff下不报错, 在ie下报错,求解!着ji!

用vs 2010调试,错误为:

行: 58
错误: 'this.el.dom' 为空或不是对象

跟了下。发现在ext-all.js里面,
这行代码有问题:

“B=this.el.dom.parentNode;”

ext js 版本为 2.2

为什么会有这个问题呢。如何解决啊!

由于代码太长,所以只选择了核心的帖出来。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Ext.onReady(function(){
Ext.BLANK_IMAGE_URL = '../ext/resources/images/default/s.gif';

 var treeLoader  =  new Ext.tree.TreeLoader({
 id : treeLoader,
    preloadChildren:true,
    dataUrl : 's873J.do?operate=payRootNoteList',

    baseParams : {'beginDate':  beginDate, 'endDate' : endDate, 'group': group, 'isValid' : isValid, 'startQuery':startQuery},
    //baseParams : {beginDate:Ext.getCmp("beginDate").getValue();, endDate:Ext.getCmp("endDate").getValue();},
    //dataUrl : 'tree-data-manager.json',
     uiProviders:{
        'col': Ext.ux.ColumnTreeCheckNodeUI
    }
 }); 






var root = new Ext.tree.AsyncTreeNode();

var tree = new Ext.tree.ColumnTree({
    el:'tree-ct',
    autoWidth:true,
    autoHeight:true,

    rootVisible:false,
    autoScroll:true,
    expandable:false,

    enableDD:true,
    checkModel:'cascade',//级联多选,如果不需要checkbox,该属性去掉     
    onlyLeafCheckable: false,//所有节点可选  

    title: '佣金支付申请',        
    tbar : [text_beginDate_label, beginDate_company,text_endDate_label,endDate_company,
    text_isValid_label, combox_isValid_company, btn_search_company,btn_commpay_company],

    //text_group_label,contenttreecombo, 

    columns:[{
        header:'代理商编码',
        width:150,
        dataIndex:'group_id'
    },{
        header:'代理商名称',
        width:200,
        dataIndex:'group_name'
    },{
        header:'佣金类型编码',
        width:100,
        dataIndex:'blnc_code'
    },{
        header:'佣金类型名称',
        width:200,
        dataIndex:'blnc_name'
    },{
        header:'佣金政策编码',
        width:100,
        dataIndex:'communit_code'
    },{
        header:'佣金政策名称',
        width:150,
        dataIndex:'communit_name'
    },{
        header:'账务月份',
        width:100,
        dataIndex:'balmonth'
    },{
        header:'佣金金额',
        width:100,
        dataIndex:'commvalue'
    }],

    loader: treeLoader,
    root: root
});


tree.render();
//tree.expandAll();

//添加树上节点的单击事件
tree.on("click", function(node, event) {

      if(node.leaf == true) {
      //  window.alert(node);
      //  window.alert(node.id);
      // window.alert(node.attributes.depth);
      // window.alert(node.getDepth());

      // note.appendChild({id: 'aaa', group_id: 'dfdf', group_name: 'fsfsdfsd' , blnc_code: 'sewrwerwe', communit_code: '34234', communit_name:'13131',balmonth,'311',commvalue,'1313', uiProvider: 'col'  });

      } else {
      }
});

//添加树上节点加载事件
tree.on("beforeload", function(treeLoader, node) {
      //判断如果是加载节点,哪么就判断是否有根节点
      return ;
}, this);  

});

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<%@ page language="java" pageEncoding="utf-8"%>


佣金支付审批



+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

代码逐句检查了下。发现是tree.render();
有问题,不知道何解!

2个回答

[code="html"]


[/code]
最后面多了个双引号?

this.el.dom为空或不是对象,应该是this.el未获取成功。
你可以试试alert(document.body.innerHTML);看IE解析成什么样子了

另外,开发时建议不要使用ext-all,那是压缩版的
可以用ext-all-debug.js (或者ext-all-debug-w-comments.js)
同理于ext-base

再建议一下,使用好的IDE可以完全避免此类低级错误

IDE我用的是Eclipse + spket

你的代码里好像没有展开相关的逻辑,没发全吧?实在不好判断。

可以调试一下看是哪步没运行到,之前的问题你也定位到Ext.Component#render方法中了。

一般,Ext在firefox中没问题,在IE下也不会有问题,前提是不直接操作dom,不出现语法错误,都使用Ext提供的接口。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!