请问大家使用Extjs做的树形菜单链接是如何打开的?似乎不用iframe就没有其他途径?

1、请问大家使用Extjs做的树形菜单链接是如何打开的?如果不用iframe就只能直接用Panel 的 load方法,但是似乎里面如果使用了extjs的脚本会出错?

2、使用以上这2种方法extjs库是否又要重新初始化一次?

3、如果不用以上的方法,而直接用js把页面renderto到右边框架的dom里,那在主页面加载的时候就要加载这个js,有没有什么方法可以动态加载的?其实这个方法可能比较好,但我想不出动态加载的方法。

请问可否有些比较成功的示例代码?
初学,请指教,非常感谢。

3个回答

Panel的load方法只有配置了scripts: true才可以执行被加载页面里面的js文件,出错很可能是因为js文件执行的时候页面还没有加载到它需要的dom结点,你把js写在最下面就行了。 iframe方式是会重新初始执行Ext的库文件的,所以比较费内存,除了panel到后台load页面嵌入当前页面文档还有两种方式,一种是组件化编写自定义的Component,需要的时候new,不需要就destroy,还有一种通过ajax方式下载包含匿名函数js文件只有用eval方法执行并获取匿名函数返回的Component实例通过组件的add方法加入到页面中。

我以前做的一个小demo,不晓得有用没
var root = new Ext.tree.TreeNode({

id:"root",

text:"Sample"

});

var ITDep = new Ext.tree.TreeNode({id:"c1",text:"IT Dep",href:"http://www.sina.com",hrefTarget:"_blank",leaf:false});

var HRDep = new Ext.tree.TreeNode({id:"c2",text:"HR Dep",leaf:false});

root.appendChild(ITDep);

root.appendChild(HRDep);

ITDep.appendChild(new Ext.tree.TreeNode({id:"c3",text:"Leo",leaf:true}));

ITDep.appendChild(new Ext.tree.TreeNode({id:"c4",text:"Tom",leaf:true}));

ITDep.appendChild(new Ext.tree.TreeNode({id:"c5",text:"Ray",leaf:true}));

HRDep.appendChild(new Ext.tree.TreeNode({id:"c6",text:"Sarah",leaf:true}));

var tree = new Ext.tree.TreePanel({

renderTo:"hello",

root: root,

width:100

});

tree.on("click",function(node,event){

alert("click on "+node.text);

});

[quote]1、请问大家使用Extjs做的树形菜单链接是如何打开的?如果不用iframe就只能直接用Panel 的 load方法,但是似乎里面如果使用了extjs的脚本会出错?

2、使用以上这2种方法extjs库是否又要重新初始化一次?

3、如果不用以上的方法,而直接用js把页面renderto到右边框架的dom里,那在主页面加载的时候就要加载这个js,有没有什么方法可以动态加载的?其实这个方法可能比较好,但我想不出动态加载的方法。

请问可否有些比较成功的示例代码?
初学,请指教,非常感谢。[/quote]

1.菜单有单击事件,在事件中触发面板的加载事件,脚本出错不一定就是加载导致的.仔细查看错误,通过火狐的firebug工具.开发extjs推荐用火狐firebug工具,别用ie

2.尽量别iframe,早在2.0的时候就有替代的好的解决办法了.还有库只会加载一次

3.直接加载很好阿.

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