📄 welcome.js
字号:
Ext.onReady(function (){
var head=new Ext.BoxComponent({
region:'north',
el:'north-div',
height:26
});
var left = new createXmlTree('west','west-div',"E:/myworkspace/mypro/WebRoot/xml/menu.xml",function(){
});
var content=new Ext.TabPanel({
region:'center',
deferredRender:false,
activeTab:0,
items:[{
contentEl:'center-div',
title:'内容',
closable:true,
autoScroll:true,
html:'<iframe scrolling="auto" frameborder="0" width="100%" height="100%" src="in.html"></iframe>'
}]
});
var state=new Ext.BoxComponent({
region:'south',
el:'south-div',
height:28,
margins:'0 0 0 0'
});
var view=new Ext.Viewport({
layout:'border',
items:[head,left,content,state]
});
function onItemToggle(item, pressed){
Ext.MessageBox.alert('Button Toggled', 'Button '+item.text+' was toggled to '+pressed+'.', item.text, pressed);
}
// 设置树的点击事件
function treeClick(node, e) {
if (!node.hasChildNodes()) {//这里设定叶子节点才容许编辑
e.stopEvent();
var n = content.getComponent(node.id);
if (!n&&node.id=='booklist') {
var n = content.add({
'id' : node.id,
'title' : node.text,
closable : true,
html:'<iframe scrolling="auto" frameborder="0" width="100%" height="100%" src="booklist.html"></iframe>'
});
}
content.setActiveTab(n);
}
}
// 增加鼠标单击事件
left.on('click', treeClick);
});
//解析xml字符串
function loadXML(xmlStr){
if(!xmlStr)return null; //空串返回null
if (window.ActiveXObject){
var xmlDom=new ActiveXObject("Microsoft.XMLDOM");
}else{
if (document.implementation&&document.implementation.createDocument){var xmlDom=document.implementation.createDocument("","doc",null)}
}
xmlDom.async = false;
try{
xmlDom.load(xmlStr);
}catch(e){ //非IE浏览器
var oParser=new DOMParser();
xmlDom=oParser.parseFromString(xmlStr,"text/xml");
}
return xmlDom;
}
//下面两个函数用于解析xml为树结构输出
function createXmlTree(region,el,xmlsrc,callback) {
var tree=new Ext.tree.TreePanel({
region:region,
el:el,
title:'管理',
animate:true,
split:true,
minSize:175,
maxSize:400,
width:200,
rootVisible:false,
margins:'0 0 0 0'
});
var xmlDom=loadXML(xmlsrc);
try{ //作为xml串解析
tree.setRootNode(treeNodeFromXml(xmlDom.documentElement||xmlDom));
callback.call(tree);
}catch(e){ //作为url解析
var p = new Ext.data.HttpProxy({url:xmlsrc||"E:/myworkspace/mypro/WebRoot/xml/menu.xml"}); //默认为etc/menu.xml
p.on("loadexception",function(o,response,e){tree.setRootNode(new Ext.tree.TreeNode("根节点"))});
p.load(null,{
read: function(response) {
var doc=response.responseXML;
tree.setRootNode(treeNodeFromXml(doc.documentElement||doc));
}
},callback,tree);
}
return tree;
}
function treeNodeFromXml(XmlEl) {
var t=((XmlEl.nodeType==3)?XmlEl.nodeValue:XmlEl.tagName);
if(t.replace(/\s/g,'').length==0){return null}
var result = {text : t};
if(XmlEl.nodeType==1){
Ext.each(XmlEl.attributes,function(a){
if(a.nodeName=="href"&&XmlEl.hasChildNodes()) return; //目录不添加链接属性
result[a.nodeName]=a.nodeValue;
});
result = new Ext.tree.TreeNode(result); //根据属性设置构建树
Ext.each(XmlEl.childNodes,function(el){
if((el.nodeType==1)||(el.nodeType ==3)){
var c=treeNodeFromXml(el);
if(c){result.appendChild(c);}
}
});
}
return result;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -