日期:2014-05-16  浏览次数:20418 次

ExtJS的树(tree)无法在多浏览器上显示,除IE外,怎么解决?
我写了一个JSP页面,页面主体代码是
JScript code
    <script type="text/javascript">
        Ext.onReady(function(){
        var Tree = Ext.tree;
       //New TreePanel
        var tree = new Tree.TreePanel({
            el:'tree-div',
            autoScroll:true,
            animate:true,
            enableDD:true,
            containerScroll: true,
            loader: new Tree.TreeLoader({
                dataUrl:'<%=basePath %>menus!querySinoInte.action'
            })
        });
    
        //Set Root Node
        var root = new Tree.AsyncTreeNode({
            text: '选择申请对象',
            draggable:false,
            id:'source'
        });
        
        tree.setRootNode(root);
        // render the tree
        tree.render();
        root.expand();
    });
    </script>
 
         
    </script>



用到的ExtJS版本是3.2

这段代码是从ExtJS自带的expamle中摘出来的,
除了将获取数据的方式我该了,返回的是一个JSON对象
dataUrl:'<%=basePath %>menus!querySinoInte.action'

其他全部一样.

这段代码我在IE9 chrome Safari Opera 上都测试了,除了IE9能正常显示外,其他都浏览器都不行。

论坛应该有人做过extjs tree的程序,不知道你们有没有这方面的问题,怎么解决的?讨个答案。

------解决方案--------------------
应该只是JS报错吧。。检测一下js
------解决方案--------------------
js的兼容性吧,用firebug检查一下是否js有地方报错了
------解决方案--------------------
在3.3里EXJJS的tree还是有很多的bug,但是依然可以有办法让tree运行正常,
楼主是适应的3。2的,在我没有试验的情况下给你些建议吧。。

1,你没有看到节点生成,那么你确认过HTML是否生成。
2,JSON返回的字符串中转化成的JSON对象会影响到tree的生成的效果。 
3,其他各种手段去找出问题的根本原因