1、请问大家使用Extjs做的树形菜单链接是如何打开的?如果不用iframe就只能直接用Panel 的 load方法,但是似乎里面如果使用了extjs的脚本会出错?
2、使用以上这2种方法extjs库是否又要重新初始化一次?
3、如果不用以上的方法,而直接用js把页面renderto到右边框架的dom里,那在主页面加载的时候就要加载这个js,有没有什么方法可以动态加载的?其实这个方法可能比较好,但我想不出动态加载的方法。
请问可否有些比较成功的示例代码?
初学,请指教,非常感谢。
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.直接加载很好阿.