以下是我從網上下的一段代碼,主要是控制跨frame進行開窗的功能.
但是這段js代碼看得不太懂,大家幫我看看,如能每句都翻譯出來的100分奉上!if(null==window.random) //這是定義什麼內容,一個隨相的窗口嗎?
{
if(null==window.fe005e9f_e51b_4307_88ff_b4b150368fd4)
{
window.fe005e9f_e51b_4307_88ff_b4b150368fd4=0;
}
window.random=function() //這個函數是定義窗品的什麼屬性
{
var s="RID";
var d=new Date();
s+=d.getYear();
s+=d.getMonth();
s+=d.getDate();
s+=d.getHours();
s+=d.getMinutes();
s+=d.getSeconds();
s+=d.getMilliseconds();
s+=parseInt(Math.random()*1000000000000);
s+=(window.fe005e9f_e51b_4307_88ff_b4b150368fd4++);
return s;
}
}
if(null==window.$)
{
window.$=function()
{
var elements = new Array();
for (var i = 0; i < arguments.length; i++)
{
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}
}
if(null==window.controlOffsetLeft)
{
window.controlOffsetLeft=function(itemName)
{
var item=$(itemName);
var totalOffset = 0;
do
{
try
{
totalOffset += item.offsetLeft;
item = item.offsetParent;
}
catch(ee)
{
}
}
while (item != null);
return totalOffset;
}
}
if(null==window.controlOffsetTop)
{
window.controlOffsetTop=function(itemName)
{
var item=$(itemName);
var totalOffset = 0;
do
{
try
{
totalOffset += item.offsetTop;
item = item.offsetParent;
}
catch(ee)
{
}
} while (item != null);
return totalOffset;
}
}
if(null==window.FrameMenuConfig)
{
window.FrameMenuConfig=function(title,url,target,img,id,pid)
{
this.Items=new Array();
this.title=title;
this.url=url;
this.img=img;
this.target=target;
this.parentId=pid;
this.id=id==null?random():id;
}
window.FrameMenu=new FrameMenuConfig();//create a new instance
FrameMenuConfig.ID2Item={};
FrameMenuConfig.WindowsList=new Array();
FrameMenuConfig.TopWindow=window.createPopup();
FrameMenuConfig.CssPrefix="";
FrameMenuConfig.CssText=null;
FrameMenuConfig.WindowsWidth=150;
FrameMenuConfig.ItemHeight=20;
FrameMenuConfig.FolderImage=null;
FrameMenuConfig.DefaultTarget=null;
window.FrameMenuConfig.prototype.add=function(title,url,target,img)
{
if(null==title||title.length<1)
{
return null;
}
var item=new FrameMenuConfig(title,url,target,img);
item.parentId=this.id;
this.Items.push(item);
FrameMenuConfig.ID2Item[item.id]=item;
return item;
}
window.FrameMenuConfig.prototype.add2=function(title,url,target,img)
{
if(null==title||title.length<1)
{
return null;
}
var item=new FrameMenuConfig(title,url,target,img);
item.parentId=this.id;
this.Items.push(item);
FrameMenuConfig.ID2Item[item.id]=item;
return this;
}
window.FrameMenuConfig.prototype.insert=function(pid,id,title,url,img,target)
{
if(null==title||title.length<1)
{
return null;
}
var item=new FrameMenuConfig(title,url,img,target,id,pid);
FrameMenuConfig.ID2Item[item.id]=item;
if(null==pid)
{
this.Items.push(item);
}
else
{
var pitem=FrameMenuConfig.ID2Item[pid];
if(null==pitem)
{
alert("輻痋粕等褐掛渣昫ㄛ拸楊梑善ID="+pid+"腔攷倛誹萸");
return;
}
pitem.Items.push(item);
}
return item;
}
FrameMenuConfig.showMenu=function(control,pid,deep)
{
if(null==FrameMenuConfig.CssText)
{
FrameMenuConfig.initlize();
}
var ele=control==null?event.srcElement:$(control);
if(null==ele)
{
return;
}
deep=Math.max(1,null==deep?1:deep);
var width = FrameMenuConfig.WindowsWidth;
var left = controlOffsetLeft(ele);
var top = controlOffsetTop(ele);
var items=FrameMenuConfig.getSubItems(pid);
var height=items.length*FrameMenuConfig.ItemHeight;
var popw=null;
if(deep<=1)
{
var scrolltop=window.document.body.scrollTop || window.document.documentElement.scrollTop;
var scrollleft=window.document.body.scrollLeft || window.document.documentElement.scrollLeft;
if((ele==document||ele==document.body )&&event!=null)
{
left=event.x;
top=event.y;
}
else
{
top+=(ele.clientHeight|ele.innerHeight|20)+3-scrolltop;
left+=-scrollleft;
}
popw=FrameMenuConfig.TopWindow;
}
else
{
popw=ele.document.parentWindow.window.b4b150368fd4_popwindow;
if(null==popw)
{
popw=ele.document.parentWindow.window.createPopup();
ele.document.parentWindow.window.b4b150368fd4_popwindow=popw;
}
left+=width-1;
}
FrameMenuConfig.WindowsList[deep]=popw;
for(var n=deep;n<FrameMenuConfig.WindowsList.length;n++)
{
if(null!=FrameMenuConfig.WindowsList[n] && null!=FrameMenuConfig.WindowsList[n].hide)
{
FrameMenuConfig.WindowsList[n].hide();
}
}
var parentTreeNode="parent";
for(var i=0;i<(deep-1);i++)
{
parentTreeNode+=".parent";
}
var cssprefix=FrameMenuConfig.CssPrefix;
cssprefix=null==cssprefix?"":cssprefix;
if(cssprefix.indexOf("#")==0)
{
cssprefix="id='"+cssprefix.substring(1)+"'";
}
else
{
if(cssprefix.length>0)
{
cssprefix="class='"+cssprefix+"'";
}
}
popw.document.body.innerHTML="";
popw.document.write("<body leftmargin=0 topmargin=0 scroll=no style='border:solid menu 0px;' >");
if(null!=FrameMenuConfig.CssText && FrameMenuConfig.CssText.length>0)
{
popw.document.write("<style>"+FrameMenuConfig.CssText+"</style>");
}
var strFolder="";
var strText="";
for(var n=0;null!=items && n<items.length;n++)
{
var item=items[n];
var bFolder=FrameMenuConfig.getSubItems(item.id).length>0;
var url=parentTreeNode+".FrameMenuConfig.goto('"+(null==item.url?"":item.url)+"','"+(null==item.target?"":item.target)+"')";
var htxt="<div "+
(null!=FrameMenuConfig.CssText && FrameMenuConfig.CssText.length>0?"":
" style='background-color:#E8E8E8;width:"+width+"px;height:"+FrameMenuConfig.ItemHeight+"px;'")+
" "+cssprefix+
" onmouseover=\""+parentTreeNode+".FrameMenuConfig.showMenu(this,'"+item.id+"',"+(deep+1)+")\""+
">"+
(bFolder && null!=FrameMenuConfig.FolderImage && FrameMenuConfig.FolderImage.length>0?
"<img src='"+FrameMenuConfig.FolderImage+"' style='width:16px;height:16px;border:0;float:right' />"
:"")+
"<a href='javascript:void(0)' onclick=\""+url+"\">"+item.title+"</a>"+
"</div>";
if(bFolder){strFolder+=htxt;}else{strText+=htxt;}
}
if(items.length>0)
{
popw.document.write(strFolder+strText);
popw.show(left,top, width, height, document.body);
}
}
FrameMenuConfig.hideAllWindows=function()
{
for(var n=0;null!=FrameMenuConfig.WindowsList && n<FrameMenuConfig.WindowsList.length;n++)
{
if(null!=FrameMenuConfig.WindowsList[n] && null!=FrameMenuConfig.WindowsList[n].hide)
{
FrameMenuConfig.WindowsList[n].hide();
}
}
}
FrameMenuConfig.createFrameMenu=function(control,bremove)
{
var ele=$(control);
if(bremove)
{
ele.innerHTML="";
}
var items=FrameMenuConfig.getSubItems();
for(var n=0;n<items.length;n++)
{
var item=items[n];
var bFolder=FrameMenuConfig.getSubItems(item.id).length>0;
var url="javascript:{FrameMenuConfig.goto('"+(null==item.url?"":item.url)+"','"+(null==item.target?"":item.target)+"');}";
var ah=document.createElement("<a href=\""+url+"\" onmouseover=\"FrameMenuConfig.showMenu(this,'"+item.id+"',1)\">");
ah.innerHTML=item.title;
ele.appendChild(ah);
}
}
FrameMenuConfig.getSubItems=function(pid)
{
if(null==pid)
{
return window.FrameMenu.Items;
}
else
{
var item=FrameMenuConfig.ID2Item[pid];
if(null==item)
{
return new Array();
}
else
{
return item.Items;
}
}
}
FrameMenuConfig.goto=function(url,target)
{
FrameMenuConfig.hideAllWindows();
if(null==url||url.length<1)
{
return;
}
if(null==target||target.length<1)
{
target=FrameMenuConfig.DefaultTarget;
}
if(null!=target && target.length>0&& target.toLowerCase()!="_self"&& target.toLowerCase()!="self")
{
if(target.toLowerCase()=="_blank")
{
window.open(url);
}
else
{
if(window.parent==null||null==window.parent.frames[target])
{
alert("輻痋粕等饜离粕等渣昫ㄛ梑祥善痋 "+target);
return;
}
else
{
window.parent.frames[target].location=url;
}
}
}
else
{
window.location=url;
}
}
//init styleSheet from this page
FrameMenuConfig.initlize=function()
{
FrameMenuConfig.ItemHeight=Math.max(12,FrameMenuConfig.ItemHeight);
FrameMenuConfig.WindowsWidth=Math.max(80,FrameMenuConfig.WindowsWidth);
document.focus();
document.onfocusout=function()
{
FrameMenuConfig.hideAllWindows();
}
FrameMenuConfig.CssText="";
for(var n=0;FrameMenuConfig.CssPrefix!=null && FrameMenuConfig.CssPrefix.length>0 && n<document.styleSheets.length;n++)
{
var sts=document.styleSheets[n];
for(var x=0;x<sts.rules.length;x++)
{
var rr=sts.rules[x];
if(rr.selectorText.indexOf(FrameMenuConfig.CssPrefix)>=0)
{
FrameMenuConfig.CssText+=rr.selectorText+"{"+rr.style.cssText+"}";
}
}
}
}
}</script>
但是這段js代碼看得不太懂,大家幫我看看,如能每句都翻譯出來的100分奉上!if(null==window.random) //這是定義什麼內容,一個隨相的窗口嗎?
{
if(null==window.fe005e9f_e51b_4307_88ff_b4b150368fd4)
{
window.fe005e9f_e51b_4307_88ff_b4b150368fd4=0;
}
window.random=function() //這個函數是定義窗品的什麼屬性
{
var s="RID";
var d=new Date();
s+=d.getYear();
s+=d.getMonth();
s+=d.getDate();
s+=d.getHours();
s+=d.getMinutes();
s+=d.getSeconds();
s+=d.getMilliseconds();
s+=parseInt(Math.random()*1000000000000);
s+=(window.fe005e9f_e51b_4307_88ff_b4b150368fd4++);
return s;
}
}
if(null==window.$)
{
window.$=function()
{
var elements = new Array();
for (var i = 0; i < arguments.length; i++)
{
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}
}
if(null==window.controlOffsetLeft)
{
window.controlOffsetLeft=function(itemName)
{
var item=$(itemName);
var totalOffset = 0;
do
{
try
{
totalOffset += item.offsetLeft;
item = item.offsetParent;
}
catch(ee)
{
}
}
while (item != null);
return totalOffset;
}
}
if(null==window.controlOffsetTop)
{
window.controlOffsetTop=function(itemName)
{
var item=$(itemName);
var totalOffset = 0;
do
{
try
{
totalOffset += item.offsetTop;
item = item.offsetParent;
}
catch(ee)
{
}
} while (item != null);
return totalOffset;
}
}
if(null==window.FrameMenuConfig)
{
window.FrameMenuConfig=function(title,url,target,img,id,pid)
{
this.Items=new Array();
this.title=title;
this.url=url;
this.img=img;
this.target=target;
this.parentId=pid;
this.id=id==null?random():id;
}
window.FrameMenu=new FrameMenuConfig();//create a new instance
FrameMenuConfig.ID2Item={};
FrameMenuConfig.WindowsList=new Array();
FrameMenuConfig.TopWindow=window.createPopup();
FrameMenuConfig.CssPrefix="";
FrameMenuConfig.CssText=null;
FrameMenuConfig.WindowsWidth=150;
FrameMenuConfig.ItemHeight=20;
FrameMenuConfig.FolderImage=null;
FrameMenuConfig.DefaultTarget=null;
window.FrameMenuConfig.prototype.add=function(title,url,target,img)
{
if(null==title||title.length<1)
{
return null;
}
var item=new FrameMenuConfig(title,url,target,img);
item.parentId=this.id;
this.Items.push(item);
FrameMenuConfig.ID2Item[item.id]=item;
return item;
}
window.FrameMenuConfig.prototype.add2=function(title,url,target,img)
{
if(null==title||title.length<1)
{
return null;
}
var item=new FrameMenuConfig(title,url,target,img);
item.parentId=this.id;
this.Items.push(item);
FrameMenuConfig.ID2Item[item.id]=item;
return this;
}
window.FrameMenuConfig.prototype.insert=function(pid,id,title,url,img,target)
{
if(null==title||title.length<1)
{
return null;
}
var item=new FrameMenuConfig(title,url,img,target,id,pid);
FrameMenuConfig.ID2Item[item.id]=item;
if(null==pid)
{
this.Items.push(item);
}
else
{
var pitem=FrameMenuConfig.ID2Item[pid];
if(null==pitem)
{
alert("輻痋粕等褐掛渣昫ㄛ拸楊梑善ID="+pid+"腔攷倛誹萸");
return;
}
pitem.Items.push(item);
}
return item;
}
FrameMenuConfig.showMenu=function(control,pid,deep)
{
if(null==FrameMenuConfig.CssText)
{
FrameMenuConfig.initlize();
}
var ele=control==null?event.srcElement:$(control);
if(null==ele)
{
return;
}
deep=Math.max(1,null==deep?1:deep);
var width = FrameMenuConfig.WindowsWidth;
var left = controlOffsetLeft(ele);
var top = controlOffsetTop(ele);
var items=FrameMenuConfig.getSubItems(pid);
var height=items.length*FrameMenuConfig.ItemHeight;
var popw=null;
if(deep<=1)
{
var scrolltop=window.document.body.scrollTop || window.document.documentElement.scrollTop;
var scrollleft=window.document.body.scrollLeft || window.document.documentElement.scrollLeft;
if((ele==document||ele==document.body )&&event!=null)
{
left=event.x;
top=event.y;
}
else
{
top+=(ele.clientHeight|ele.innerHeight|20)+3-scrolltop;
left+=-scrollleft;
}
popw=FrameMenuConfig.TopWindow;
}
else
{
popw=ele.document.parentWindow.window.b4b150368fd4_popwindow;
if(null==popw)
{
popw=ele.document.parentWindow.window.createPopup();
ele.document.parentWindow.window.b4b150368fd4_popwindow=popw;
}
left+=width-1;
}
FrameMenuConfig.WindowsList[deep]=popw;
for(var n=deep;n<FrameMenuConfig.WindowsList.length;n++)
{
if(null!=FrameMenuConfig.WindowsList[n] && null!=FrameMenuConfig.WindowsList[n].hide)
{
FrameMenuConfig.WindowsList[n].hide();
}
}
var parentTreeNode="parent";
for(var i=0;i<(deep-1);i++)
{
parentTreeNode+=".parent";
}
var cssprefix=FrameMenuConfig.CssPrefix;
cssprefix=null==cssprefix?"":cssprefix;
if(cssprefix.indexOf("#")==0)
{
cssprefix="id='"+cssprefix.substring(1)+"'";
}
else
{
if(cssprefix.length>0)
{
cssprefix="class='"+cssprefix+"'";
}
}
popw.document.body.innerHTML="";
popw.document.write("<body leftmargin=0 topmargin=0 scroll=no style='border:solid menu 0px;' >");
if(null!=FrameMenuConfig.CssText && FrameMenuConfig.CssText.length>0)
{
popw.document.write("<style>"+FrameMenuConfig.CssText+"</style>");
}
var strFolder="";
var strText="";
for(var n=0;null!=items && n<items.length;n++)
{
var item=items[n];
var bFolder=FrameMenuConfig.getSubItems(item.id).length>0;
var url=parentTreeNode+".FrameMenuConfig.goto('"+(null==item.url?"":item.url)+"','"+(null==item.target?"":item.target)+"')";
var htxt="<div "+
(null!=FrameMenuConfig.CssText && FrameMenuConfig.CssText.length>0?"":
" style='background-color:#E8E8E8;width:"+width+"px;height:"+FrameMenuConfig.ItemHeight+"px;'")+
" "+cssprefix+
" onmouseover=\""+parentTreeNode+".FrameMenuConfig.showMenu(this,'"+item.id+"',"+(deep+1)+")\""+
">"+
(bFolder && null!=FrameMenuConfig.FolderImage && FrameMenuConfig.FolderImage.length>0?
"<img src='"+FrameMenuConfig.FolderImage+"' style='width:16px;height:16px;border:0;float:right' />"
:"")+
"<a href='javascript:void(0)' onclick=\""+url+"\">"+item.title+"</a>"+
"</div>";
if(bFolder){strFolder+=htxt;}else{strText+=htxt;}
}
if(items.length>0)
{
popw.document.write(strFolder+strText);
popw.show(left,top, width, height, document.body);
}
}
FrameMenuConfig.hideAllWindows=function()
{
for(var n=0;null!=FrameMenuConfig.WindowsList && n<FrameMenuConfig.WindowsList.length;n++)
{
if(null!=FrameMenuConfig.WindowsList[n] && null!=FrameMenuConfig.WindowsList[n].hide)
{
FrameMenuConfig.WindowsList[n].hide();
}
}
}
FrameMenuConfig.createFrameMenu=function(control,bremove)
{
var ele=$(control);
if(bremove)
{
ele.innerHTML="";
}
var items=FrameMenuConfig.getSubItems();
for(var n=0;n<items.length;n++)
{
var item=items[n];
var bFolder=FrameMenuConfig.getSubItems(item.id).length>0;
var url="javascript:{FrameMenuConfig.goto('"+(null==item.url?"":item.url)+"','"+(null==item.target?"":item.target)+"');}";
var ah=document.createElement("<a href=\""+url+"\" onmouseover=\"FrameMenuConfig.showMenu(this,'"+item.id+"',1)\">");
ah.innerHTML=item.title;
ele.appendChild(ah);
}
}
FrameMenuConfig.getSubItems=function(pid)
{
if(null==pid)
{
return window.FrameMenu.Items;
}
else
{
var item=FrameMenuConfig.ID2Item[pid];
if(null==item)
{
return new Array();
}
else
{
return item.Items;
}
}
}
FrameMenuConfig.goto=function(url,target)
{
FrameMenuConfig.hideAllWindows();
if(null==url||url.length<1)
{
return;
}
if(null==target||target.length<1)
{
target=FrameMenuConfig.DefaultTarget;
}
if(null!=target && target.length>0&& target.toLowerCase()!="_self"&& target.toLowerCase()!="self")
{
if(target.toLowerCase()=="_blank")
{
window.open(url);
}
else
{
if(window.parent==null||null==window.parent.frames[target])
{
alert("輻痋粕等饜离粕等渣昫ㄛ梑祥善痋 "+target);
return;
}
else
{
window.parent.frames[target].location=url;
}
}
}
else
{
window.location=url;
}
}
//init styleSheet from this page
FrameMenuConfig.initlize=function()
{
FrameMenuConfig.ItemHeight=Math.max(12,FrameMenuConfig.ItemHeight);
FrameMenuConfig.WindowsWidth=Math.max(80,FrameMenuConfig.WindowsWidth);
document.focus();
document.onfocusout=function()
{
FrameMenuConfig.hideAllWindows();
}
FrameMenuConfig.CssText="";
for(var n=0;FrameMenuConfig.CssPrefix!=null && FrameMenuConfig.CssPrefix.length>0 && n<document.styleSheets.length;n++)
{
var sts=document.styleSheets[n];
for(var x=0;x<sts.rules.length;x++)
{
var rr=sts.rules[x];
if(rr.selectorText.indexOf(FrameMenuConfig.CssPrefix)>=0)
{
FrameMenuConfig.CssText+=rr.selectorText+"{"+rr.style.cssText+"}";
}
}
}
}
}</script>
{
if(null==window.fe005e9f_e51b_4307_88ff_b4b150368fd4)
{
window.fe005e9f_e51b_4307_88ff_b4b150368fd4=0;
}
window.random=function() //這個函數是用來做什麼的,返回窗口的屬性嗎?要那麼多時間和'RID'干什麼?
{
var s="RID";
var d=new Date();
s+=d.getYear();
s+=d.getMonth();
s+=d.getDate();
s+=d.getHours();
s+=d.getMinutes();
s+=d.getSeconds();
s+=d.getMilliseconds();
s+=parseInt(Math.random()*1000000000000);
s+=(window.fe005e9f_e51b_4307_88ff_b4b150368fd4++);
return s;
}
}if(null==window.$)
{
window.$=function()
{
var elements = new Array();
for (var i = 0;i < arguments.length;i++) //js中的arguments主要是可以對輸入的參數進行跟蹤 得出路徑的索引
{
var element = arguments[i]; //行出當前行索引的url
if (typeof element == 'string') //判斷element 數據類型
element = document.getElementById(element); //獲取element的id值
if (arguments.length == 1) //如果此對象只有一個url
return element;
elements.push(element); //如果有多個URL則賦給elements 但是這個方法看不太明白 elements.push 誰可以解釋下?
}
return elements;
}
}
if(null==window.controlOffsetLeft) //控制左邊距的,
{
window.controlOffsetLeft=function(itemName)
{
var item=$(itemName);
var totalOffset = 0;
do
{
try
{
totalOffset += item.offsetLeft;
item = item.offsetParent;
}
catch(ee)
{
}
}
while (item != null);
return totalOffset;
}
}
if(null==window.controlOffsetTop) //控制右邊距的,
{
window.controlOffsetTop=function(itemName)
{
var item=$(itemName);
var totalOffset = 0;
do
{
try
{
totalOffset += item.offsetTop;
item = item.offsetParent;
}
catch(ee)
{
}
} while (item != null);
return totalOffset;
}
}
if(null==window.FrameMenuConfig) //產生每個菜單對象
{
window.FrameMenuConfig=function(title,url,target,img,id,pid)
{ this.Items=new Array();
this.title=title; /給菜單賦屬性值,這是從畫面菜單中傳弟過來的
this.url=url;
this.img=img;
this.target= target;
this.parentId=pid;
this.id=id==null?random():id;
}
window.FrameMenu=new FrameMenuConfig();//創建一個窗口,實例? 因該這就是可以跨frame的核心地方吧?
FrameMenuConfig.ID2Item={};
FrameMenuConfig.WindowsList=new Array();
FrameMenuConfig.TopWindow=window.createPopup();
FrameMenuConfig.CssPrefix="";
FrameMenuConfig.CssText=null;
FrameMenuConfig.WindowsWidth=150;
FrameMenuConfig.ItemHeight=20;
FrameMenuConfig.FolderImage=null;
FrameMenuConfig.DefaultTarget=null;
window.FrameMenuConfig.prototype.add=function(title,url,target,img)//產生下級菜單的方式,
{
if(null==title||title.length<1)
{
return null;
}
var item=new FrameMenuConfig(title,url,target,img);
item.parentId=this.id;
this.Items.push(item);
FrameMenuConfig.ID2Item[item.id]=item;
return item;
}
window.FrameMenuConfig.prototype.add2=function(title,url,target,img)//產生並列的菜單
{
if(null==title||title.length<1)
{
return null;
}
var item=new FrameMenuConfig(title,url,target,img);
item.parentId=this.id;
this.Items.push(item);
FrameMenuConfig.ID2Item[item.id]=item;
return this;
}
window.FrameMenuConfig.prototype.insert=function(pid,id,title,url,img,target)//insert一個菜單的值
{
if(null==title||title.length<1)
{
return null;
}
var item=new FrameMenuConfig(title,url,img,target,id,pid);
FrameMenuConfig.ID2Item[item.id]=item;
if(null==pid) //如果pid為null則代表增加的為根目錄
{
this.Items.push(item);
}
else
{
var pitem=FrameMenuConfig.ID2Item[pid];
if(null==pitem)
{
alert("ID="+pid+"");
return;
}
pitem.Items.push(item);
} return item;
}
FrameMenuConfig.showMenu=function(control,pid,deep) //顯示菜單
{
if(null==FrameMenuConfig.CssText)
{
FrameMenuConfig.initlize();
}
var ele=control==null?event.srcElement:$(control);
if(null==ele)
{
return;
}
deep=Math.max(1,null==deep?1:deep);
var width = FrameMenuConfig.WindowsWidth;
var left = controlOffsetLeft(ele);
var top = controlOffsetTop(ele);
var items=FrameMenuConfig.getSubItems(pid);
var height=items.length*FrameMenuConfig.ItemHeight;
var popw=null;
if(deep<=1)
{
var scrolltop=window.document.body.scrollTop || window.document.documentElement.scrollTop;
var scrollleft=window.document.body.scrollLeft || window.document.documentElement.scrollLeft;
if((ele==document||ele==document.body )&&event!=null)
{
left=event.x;
top=event.y;
}
else
{
top+=(ele.clientHeight|ele.innerHeight|20)+3-scrolltop;
left+=-scrollleft;
}
popw=FrameMenuConfig.TopWindow;
}
else
{
popw=ele.document.parentWindow.window.b4b150368fd4_popwindow;
if(null==popw)
{
popw=ele.document.parentWindow.window.createPopup();
ele.document.parentWindow.window.b4b150368fd4_popwindow=popw;
}
left+=width-1;
}
FrameMenuConfig.WindowsList[deep]=popw;
for(var n=deep;n<FrameMenuConfig.WindowsList.length;n++)
{
if(null!=FrameMenuConfig.WindowsList[n] && null!=FrameMenuConfig.WindowsList[n].hide)
{
FrameMenuConfig.WindowsList[n].hide();
}
}
var parentTreeNode="parent";
for(var i=0;i<(deep-1);i++)
{
parentTreeNode+=".parent";
}
var cssprefix=FrameMenuConfig.CssPrefix;
cssprefix=null==cssprefix?"":cssprefix;
if(cssprefix.indexOf("#")==0)
{
cssprefix="id='"+cssprefix.substring(1)+"'";
}
else
{
if(cssprefix.length>0)
{
cssprefix="class='"+cssprefix+"'";
}
} popw.document.body.innerHTML=""; //以下為寫入html代碼
popw.document.write("<body leftmargin=0 topmargin=0 scroll=no style='border:solid menu 0px;' >");
if(null!=FrameMenuConfig.CssText && FrameMenuConfig.CssText.length>0)
{
popw.document.write("<style>"+FrameMenuConfig.CssText+"</style>");
}
var strFolder="";
var strText="";
for(var n=0;null!=items && n<items.length;n++)
{
var item=items[n];
var bFolder=FrameMenuConfig.getSubItems(item.id).length>0;
var url=parentTreeNode+".FrameMenuConfig.goto('"+(null==item.url?"":item.url)+"','"+(null==item.target?"":item.target)+"')";
if (item.target == null){
url= "OpenWindow('"+(null==item.url?"":item.url)+"')";
}
var htxt="<div "+
(null!=FrameMenuConfig.CssText && FrameMenuConfig.CssText.length>0?"":
" style='z-index:2;background-color:#E8E8E8;width:"+width+"px;height:"+FrameMenuConfig.ItemHeight+"px;'")+
" "+cssprefix+
" onmouseover=\""+parentTreeNode+".FrameMenuConfig.showMenu(this,'"+item.id+"',"+(deep+1)+")\""+
">"+
(bFolder && null!=FrameMenuConfig.FolderImage && FrameMenuConfig.FolderImage.length>0?
"<img src='"+FrameMenuConfig.FolderImage+"' style='width:16px;height:16px;border:0;float:right' />"
:"")+
"<a href='javascript:void(0)' onclick=\""+url+"\">"+item.title+"</a>"+
"</div>";
if(bFolder){strFolder+=htxt;}else{strText+=htxt;}
alert(htxt);
}
if(items.length>0)
{
popw.document.write(strFolder+strText);
popw.show(left,top, width, height, document.body);
}
}
FrameMenuConfig.hideAllWindows=function()
{
for(var n=0;null!=FrameMenuConfig.WindowsList && n<FrameMenuConfig.WindowsList.length;n++)
{
if(null!=FrameMenuConfig.WindowsList[n] && null!=FrameMenuConfig.WindowsList[n].hide)
{
FrameMenuConfig.WindowsList[n].hide();
}
}
}
FrameMenuConfig.createFrameMenu=function(control,bremove)
{
var ele=$(control);
if(bremove)
{
ele.innerHTML="";
}
var items=FrameMenuConfig.getSubItems();
for(var n=0;n<items.length;n++)
{
var item=items[n];
var bFolder=FrameMenuConfig.getSubItems(item.id).length>0;
var url="javascript:{FrameMenuConfig.goto('"+(null==item.url?"":item.url)+"','"+(null==item.target?"":item.target)+"');}";
var ah=document.createElement("<a href=\""+url+"\" onmouseover=\"FrameMenuConfig.showMenu(this,'"+item.id+"',1)\">");
ah.innerHTML=item.title;
ele.appendChild(ah);
}
}
FrameMenuConfig.getSubItems=function(pid)
{
if(null==pid)
{
return window.FrameMenu.Items;
}
else
{
var item=FrameMenuConfig.ID2Item[pid];
if(null==item)
{
return new Array();
}
else
{
return item.Items;
}
}
}
FrameMenuConfig.goto=function(url,target) //轉向地址
{
FrameMenuConfig.hideAllWindows();
if(null==url||url.length<1)
{
return;
}
if(null==target||target.length<1)
{
target=FrameMenuConfig.DefaultTarget;
}
//toLowerCase //轉換為小寫形式
if(null!=target && target.length>0 && target.toLowerCase()!="_self" && target.toLowerCase()!="self" )
{
if(target.toLowerCase()=="_blank")
{
window.open(url);
}
else
{
if(window.parent==null||null==window.parent.frames[target])
{
alert("不存在的地址"+target);
return;
}
else
{
window.parent.frames[target].location=url;
}
}
}
else
{
window.location=url;
}
}
//init styleSheet from this page
FrameMenuConfig.initlize=function() //初始化對象
{
FrameMenuConfig.ItemHeight=Math.max(12,FrameMenuConfig.ItemHeight);
FrameMenuConfig.WindowsWidth=Math.max(80,FrameMenuConfig.WindowsWidth);
document.focus();
document.onfocusout=function()
{
FrameMenuConfig.hideAllWindows();
}
FrameMenuConfig.CssText="";
for(var n=0;FrameMenuConfig.CssPrefix!=null && FrameMenuConfig.CssPrefix.length>0 && n<document.styleSheets.length;n++)
{
var sts=document.styleSheets[n];
for(var x=0;x<sts.rules.length;x++)
{
var rr=sts.rules[x];
if(rr.selectorText.indexOf(FrameMenuConfig.CssPrefix)>=0)
{
FrameMenuConfig.CssText+=rr.selectorText+"{"+rr.style.cssText+"}";
}
}
}
}
}
我開的窗口是createPopup(); 用來實現菜單的頁面.
popw.document.body.innerHTML="";
var str_sub = " <script language='javascript'> function OpenWindow(){ window.open('body.asp') } </script>"
popw.document.write(str_sub);
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<div id="d1">d1</div>
<div id="d2">d2</div>
<div id="d3">d3</div>
</body>
</html>
<script type="text/javascript">
if(null==window.random) //这里的random仅仅是个变量,在window作用域下,大致等同于全局变量
{
if(null==window.fe005e9f_e51b_4307_88ff_b4b150368fd4)
{
window.fe005e9f_e51b_4307_88ff_b4b150368fd4=0; //初始化全局变量 fe005e9f_e51b_4307_88ff_b4b150368fd4 为 0
}
window.random=function() //这个函数就是返回一个固定格式的随机字符串。下面有个alert调用了这个函数,你可以看看。
{
var s="RID"; //变量 s 当前为 "RID"
var d=new Date(); //获取当前日期对象
s+=d.getYear(); //s 加上 年
s+=d.getMonth(); //s 加上 月
s+=d.getDate(); //s 加上 日
s+=d.getHours(); //s 加上 时
s+=d.getMinutes(); //s 加上 分
s+=d.getSeconds(); //s 加上 秒
s+=d.getMilliseconds(); //s 加上 毫秒
s+=parseInt(Math.random()*1000000000000); //s 加上 0 ~ 1000000000000 之间的一个随机数
s+=(window.fe005e9f_e51b_4307_88ff_b4b150368fd4++); //最后再加上全局变量 window.fe005e9f_e51b_4307_88ff_b4b150368fd4 的值
return s; //返回 s 这个字符串
}
}alert(window.random()); //测试代码,运行可以看到输出的字符串if(null==window.$) //测试window.$是否存在,不存在才会继续后面对 $ 的定义。
{ //每次要测 一个名称 是否存在累不累啊。还不如把整个代码放到一个模块里,不用发愁作用域冲突了。
window.$=function() //这里定义函数 $ 。
{
var elements = new Array();
for (var i = 0;i < arguments.length;i++) //arguments对象取得这个函数所能获得的所有参数列表
{
var element = arguments[i]; //循环获得每一个参数
if (typeof element == 'string') //判斷element 數據類型
element = document.getElementById(element); //这是吧id为 字符串element 的值 的元素对象赋值给了element。
//document.getElementById() 通过ID获取文档的一个DOM元素
if (arguments.length == 1) //如果数组长度为1
return element; //直接返回对象
elements.push(element); //elements是个数组,push就是把一个元素加到数组末尾的函数。
}
return elements; //返回这个数组
}
}//这里演示如何调用上面的函数:
var div_d1 = $("d1"); //获取了id为"d1"的DOM.
alert(div_d1.innerHTML); //输出这个DIV的内部HTML。var arrDiv = $("d1","d2","d3"); //获取了3个DIV DOM组成的一个数组
for(var i=0,j=arrDiv.length;i<j;i++){
alert(arrDiv[i].innerHTML);
}</script>
楼主明显没有什么javascript语法功底,建议先多翻翻参考书。自己读完了,能大致了解上面代码的意思了,估计javascript就入门了。别人不给你翻是因为觉得你太懒了,一些基础的概念你都没去学就直接问问题。就像是一个从来不会编程的人问你一大长串代码每一句时什么意思,这真的是个非常浩大的工程。给你推荐本书:javascript权威指南。上面每一段代码的功能在这本书里面都能找到。
我一定會好好看書的
{
if(null==window.fe005e9f_e51b_4307_88ff_b4b150368fd4)
{
window.fe005e9f_e51b_4307_88ff_b4b150368fd4=0;
}
window.random=function() //根据精确的时间再加上系统默认的随机函数返回值生成随机数
{
var s="RID";
var d=new Date();
s+=d.getYear();
s+=d.getMonth();
s+=d.getDate();
s+=d.getHours();
s+=d.getMinutes();
s+=d.getSeconds();
s+=d.getMilliseconds();
s+=parseInt(Math.random()*1000000000000);
s+=(window.fe005e9f_e51b_4307_88ff_b4b150368fd4++);
return s;
}
}
/*
上述函数函数=
function random()
{}
加上window.相当于random()函数的作用域。
*///定义函数$拓展代替document.getElementById();返回数组。
if(null==window.$)
{
window.$=function()
{
var elements = new Array();
for (var i = 0; i < arguments.length; i++)
{
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}
}//定义函数controlOffsetLeft循环(加)找到一个控件相对于浏览器的左边距。(控件可能在容器中例如:TD,DIV等等)
if(null==window.controlOffsetLeft)
{
window.controlOffsetLeft=function(itemName)
{
var item=$(itemName);
var totalOffset = 0;
do
{
try
{
totalOffset += item.offsetLeft;
item = item.offsetParent;
}
catch(ee)
{
}
}
while (item != null);
return totalOffset;
}
}
//定义函数controlOffsetLeft循环(加)找到一个控件相对于浏览器的上边距。(控件可能在容器中例如:TD,DIV等等)
if(null==window.controlOffsetTop)
{
window.controlOffsetTop=function(itemName)
{
var item=$(itemName);
var totalOffset = 0;
do
{
try
{
totalOffset += item.offsetTop;
item = item.offsetParent;
}
catch(ee)
{
}
} while (item != null);
return totalOffset;
}
}//定义类FrameMenuConfig
if(null==window.FrameMenuConfig)
{
//菜单类的构造函数(属性:值、链接地址、响应框架名称、背景图片、ID、父ID)
window.FrameMenuConfig=function(title,url,target,img,id,pid)
{
this.Items=new Array();//存储其子菜单
this.title=title;
this.url=url;
this.img=img;
this.target=target;
this.parentId=pid;//父节点ID
this.id=id==null?random():id;//本身ID
}
window.FrameMenu=new FrameMenuConfig();//定义一个菜单类得实例,该实例作用域是window(相当于全局变量),该句可以提到外边,在这里有些混淆
FrameMenuConfig.ID2Item={};//菜单类的静态属性【私有:只有类内部调用】
FrameMenuConfig.WindowsList=new Array();//菜单类的静态属性【私有:只有类内部调用】
FrameMenuConfig.TopWindow=window.createPopup();//采用window.createPopup()的形式弹出子菜单,缺陷背景不能透明,采用ifreame好些,背景能透明【私有:只有类内部调用】
FrameMenuConfig.CssPrefix="";//该菜单的CSS类名【私有:只有类内部调用】系统菜单生成的结构为<div><a>...</a></div>,此处设置div的显示风格,a的显示风格请附带在div中设置
FrameMenuConfig.CssText=null;//菜单类的静态属性【私有:只有类内部调用】
FrameMenuConfig.WindowsWidth=150;//菜单类的静态属性(子菜单默认宽度)【私有:只有类内部调用】
FrameMenuConfig.ItemHeight=20;//菜单类的静态属性(子菜单默认高度)【私有:只有类内部调用】
FrameMenuConfig.FolderImage=null;//菜单类的静态属性(子菜单又含有子菜单出现的图片)【私有:只有类内部调用】
FrameMenuConfig.DefaultTarget=null;//菜单类的静态属性(默认响应的框架名称)【私有:只有类内部调用】
//add函数插入一个菜单,返回这个新的菜单的实例,格式为 节点显示文本、节点URL、节点的目标框架,目标框架支持_self和_blank.节点的ID自动生成
//菜单类的实例对象的函数【公有:对象可以调用】(添加菜单项)
window.FrameMenuConfig.prototype.add=function(title,url,target,img)
{
if(null==title||title.length<1)
{
return null;
}
var item=new FrameMenuConfig(title,url,target,img);
item.parentId=this.id;
this.Items.push(item);
FrameMenuConfig.ID2Item[item.id]=item;
return item;
}
//菜单类的实例对象的函数【公有:对象可以调用】(添加菜单项),函数插入一个菜单,返回这个菜单的父亲节点的实例,格式为 节点显示文本、节点URL、节点的目标框架,目标框架支持_self和_blank.节点的ID自动生成
window.FrameMenuConfig.prototype.add2=function(title,url,target,img)
{
if(null==title||title.length<1)
{
return null;
}
var item=new FrameMenuConfig(title,url,target,img);
item.parentId=this.id;
this.Items.push(item);
FrameMenuConfig.ID2Item[item.id]=item;
return this;
}
//菜单类的实例对象的函数【公有:对象可以调用】(插入菜单项)直接插入一格记录,格式为父亲代码、节点代码、节点显示文本、节点URL、节点的目标框架,目标框架支持_self和_blank.
window.FrameMenuConfig.prototype.insert=function(pid,id,title,url,img,target)
{
if(null==title||title.length<1)
{
return null;
}
var item=new FrameMenuConfig(title,url,img,target,id,pid);
FrameMenuConfig.ID2Item[item.id]=item;
if(null==pid)
{
this.Items.push(item);//添加到FrameMenu.Items里
}
else
{
var pitem=FrameMenuConfig.ID2Item[pid];
if(null==pitem)
{
alert("輻痋粕等褐掛渣昫ㄛ拸楊梑善ID="+pid+"腔攷倛誹萸");
return;
}
pitem.Items.push(item);
}
return item;
}
//菜单类静态【私有:只有类内部调用】函数(显示子级菜单)
FrameMenuConfig.showMenu=function(control,pid,deep)
{
if(null==FrameMenuConfig.CssText)
{
FrameMenuConfig.initlize();
}
var ele=control==null?event.srcElement:$(control);
if(null==ele)
{
return;
}
deep=Math.max(1,null==deep?1:deep);
var width = FrameMenuConfig.WindowsWidth;
var left = controlOffsetLeft(ele);
var top = controlOffsetTop(ele);
var items=FrameMenuConfig.getSubItems(pid);
var height=items.length*FrameMenuConfig.ItemHeight;
var popw=null;
if(deep<=1)//针对一级菜单
{
var scrolltop=window.document.body.scrollTop || window.document.documentElement.scrollTop;//前面是针对ie的
var scrollleft=window.document.body.scrollLeft || window.document.documentElement.scrollLeft;
if((ele==document||ele==document.body )&&event!=null)//如果是在页面上直接点击
{
left=event.x;
top=event.y;
}
else//如果是页面上的控件
{
top+=(ele.clientHeight|ele.innerHeight|20)+3-scrolltop;
left+=-scrollleft;
}
popw=FrameMenuConfig.TopWindow;
}
else//针对子菜单
{
popw=ele.document.parentWindow.window.b4b150368fd4_popwindow;
if(null==popw)
{
popw=ele.document.parentWindow.window.createPopup();
ele.document.parentWindow.window.b4b150368fd4_popwindow=popw;
}
left+=width-1;
}
FrameMenuConfig.WindowsList[deep]=popw;
for(var n=deep;n<FrameMenuConfig.WindowsList.length;n++)
{
if(null!=FrameMenuConfig.WindowsList[n] && null!=FrameMenuConfig.WindowsList[n].hide)
{
FrameMenuConfig.WindowsList[n].hide();//隐藏掉所有的同级及下级菜单
}
}
var parentTreeNode="parent";
for(var i=0;i<(deep-1);i++)
{
parentTreeNode+=".parent";
}
//给菜单添加样式
var cssprefix=FrameMenuConfig.CssPrefix;
cssprefix=null==cssprefix?"":cssprefix;
if(cssprefix.indexOf("#")==0)
{
cssprefix="id='"+cssprefix.substring(1)+"'";
}
else
{
if(cssprefix.length>0)
{
cssprefix="class='"+cssprefix+"'";
}
}
//组织window.createPopup();的INNERHTML,window.createPopup();弹出一个没有标题栏的窗口,改窗口隶属于调用它的页面
popw.document.body.innerHTML="";
popw.document.write("<body leftmargin=0 topmargin=0 scroll=no style='border:solid menu 0px;' >");
if(null!=FrameMenuConfig.CssText && FrameMenuConfig.CssText.length>0)
{
popw.document.write("<style>"+FrameMenuConfig.CssText+"</style>");
}
var strFolder="";
var strText="";
for(var n=0;null!=items && n<items.length;n++)
{
var item=items[n];
var bFolder=FrameMenuConfig.getSubItems(item.id).length>0;
var url=parentTreeNode+".FrameMenuConfig.goto('"+(null==item.url?"":item.url)+"','"+(null==item.target?"":item.target)+"')";
var htxt="<div "+
(null!=FrameMenuConfig.CssText && FrameMenuConfig.CssText.length>0?"":
" style='background-color:#E8E8E8;width:"+width+"px;height:"+FrameMenuConfig.ItemHeight+"px;'")+
" "+cssprefix+
" onmouseover=\""+parentTreeNode+".FrameMenuConfig.showMenu(this,'"+item.id+"',"+(deep+1)+")\""+
">"+
(bFolder && null!=FrameMenuConfig.FolderImage && FrameMenuConfig.FolderImage.length>0?
"<img src='"+FrameMenuConfig.FolderImage+"' style='width:16px;height:16px;border:0;float:right' />"
:"")+
"<a href='javascript:void(0)' onclick=\""+url+"\">"+item.title+"</a>"+
"</div>";
if(bFolder){strFolder+=htxt;}else{strText+=htxt;}
}
//显示菜单
if(items.length>0)
{
popw.document.write(strFolder+strText);
popw.show(left,top, width, height, document.body);
}
}
FrameMenuConfig.hideAllWindows=function()
{
for(var n=0;null!=FrameMenuConfig.WindowsList && n<FrameMenuConfig.WindowsList.length;n++)
{
if(null!=FrameMenuConfig.WindowsList[n] && null!=FrameMenuConfig.WindowsList[n].hide)
{
FrameMenuConfig.WindowsList[n].hide();
}
}
}
//菜单类的私有函数:创建菜单(一级菜单)control是菜单容器名,bremove是否移除,一般是添加到层中
FrameMenuConfig.createFrameMenu=function(control,bremove)
{
var ele=$(control);
if(bremove)
{
ele.innerHTML="";
}
var items=FrameMenuConfig.getSubItems();
for(var n=0;n<items.length;n++)
{
var item=items[n];
var bFolder=FrameMenuConfig.getSubItems(item.id).length>0;
var url="javascript:{FrameMenuConfig.goto('"+(null==item.url?"":item.url)+"','"+(null==item.target?"":item.target)+"');}";
var ah=document.createElement("<a href=\""+url+"\" onmouseover=\"FrameMenuConfig.showMenu(this,'"+item.id+"',1)\">");
ah.innerHTML=item.title;
ele.appendChild(ah);
}
}
//根据父菜单ID获取子菜单项
FrameMenuConfig.getSubItems=function(pid)
{
if(null==pid)
{
return window.FrameMenu.Items;
}
else
{
var item=FrameMenuConfig.ID2Item[pid];
if(null==item)
{
return new Array();
}
else
{
return item.Items;
}
}
}
//转向链接(url:要转向的页;target:目标框架名)
FrameMenuConfig.goto=function(url,target)
{
FrameMenuConfig.hideAllWindows();
if(null==url||url.length<1)
{
return;
}
if(null==target||target.length<1)
{
target=FrameMenuConfig.DefaultTarget;
}
if(null!=target && target.length>0&& target.toLowerCase()!="_self"&& target.toLowerCase()!="self")
{
if(target.toLowerCase()=="_blank")
{
window.open(url);
}
else
{
if(window.parent==null||null==window.parent.frames[target])
{
alert("輻痋粕等饜离粕等渣昫ㄛ梑祥善痋 "+target);
return;
}
else
{
window.parent.frames[target].location=url;
}
}
}
else
{
window.location=url;
}
}
//初始化菜单的样式
FrameMenuConfig.initlize=function()
{
FrameMenuConfig.ItemHeight=Math.max(12,FrameMenuConfig.ItemHeight);
FrameMenuConfig.WindowsWidth=Math.max(80,FrameMenuConfig.WindowsWidth);
document.focus();
document.onfocusout=function()
{
FrameMenuConfig.hideAllWindows();
}
FrameMenuConfig.CssText="";
for(var n=0;FrameMenuConfig.CssPrefix!=null && FrameMenuConfig.CssPrefix.length>0 && n<document.styleSheets.length;n++)
{
var sts=document.styleSheets[n];
for(var x=0;x<sts.rules.length;x++)
{
var rr=sts.rules[x];
if(rr.selectorText.indexOf(FrameMenuConfig.CssPrefix)>=0)
{
FrameMenuConfig.CssText+=rr.selectorText+"{"+rr.style.cssText+"}";
}
}
}
}
}</script>
/*调用示例:
var nodeList;//所有模块节点
window.onload = function()
{
FrameMenuConfig.CssPrefix="#fm_Container";
FrameMenuConfig.FolderImage="../Images/leftbtn.png";
FrameMenuConfig.WindowsWidth = 120;
FrameMenuConfig.ItemHeight = 25;
oXmlDoc = Menu.getAllModules($("Tb_RoleId").value).value;//利用Ajax函数获取xml文档
nodeList = oXmlDoc.selectNodes("Modules/Module");//所有模块节点
//首页、登录、注销
FrameMenu.insert(null,"","办公室","../../BiaoZhun/Web/MyWork.aspx?ListCode=0500000000","mainform");
FrameMenu.insert(null,"","我的事业","LoginForm.aspx?Type=LogIn","mainform");
//其它节点
InsertNode("0000000000");
FrameMenuConfig.createFrameMenu("fm_MainContainer",false);
}
//递归插入节点
function InsertNode(pcode)
{
var deep = GetLevel(pcode);//获得深度
for (var i=0;i < nodeList.length;i++)
{
var subNodes = nodeList[i].childNodes;
if((subNodes.item(0).text.substr(0,deep*2) == pcode.substr(0,deep*2)) && (subNodes.item(0).text.substr((deep+1)*2) == pcode.substr((deep+1)*2)) && (subNodes.item(0).text != pcode))
{
FrameMenu.insert((pcode=="0000000000"?null:pcode),subNodes.item(0).text,subNodes.item(1).text,subNodes.item(2).text + (subNodes.item(2).text.indexOf('?')>-1?'&':'?') + 'ListCode=' + subNodes.item(0).text,subNodes.item(3).text);
InsertNode(subNodes.item(0).text);
}
}
}
//根据code获得级别
function GetLevel(strCode)
{
var strTemp = "";
var level = 0;
for(var i = 0;i < 2;i ++)
{
strTemp += "0";
}
while(level*2 < strCode.length && strCode.substr(level*2,2) != strTemp)
level++;
return level;
}*/
/* c#函数namespace WebEdit.Table.Impl
{
/// <summary>
/// Menu 的摘要说明。
/// </summary>
public class Menu
{
public Menu()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 根据角色获取所有的模块信息
/// </summary>
/// <param name="RoleId"></param>
/// <returns></returns>
[Ajax.AjaxMethod]
public XmlDocument getAllModules(string RoleId)
{
string strSql = "SELECT DISTINCT";
strSql += " JXNF_MODULELIST.LISTCODE as ListCode,";
strSql += " JXNF_MODULELIST.LISTNAME as ListName,";
strSql += " JXNF_MODULELIST.STRNAVIGATEURL as Url,";
strSql += " JXNF_MODULELIST.STRTARGET as Target";
strSql += " FROM JXNF_MODULELIST,JXNF_R2M";
strSql += " WHERE JXNF_MODULELIST.LISTID = JXNF_R2M.LISTID";
strSql += " AND JXNF_R2M.ROLEID IN (" + RoleId.ToString() + ")";
strSql += " ORDER BY JXNF_MODULELIST.LISTCODE ASC"; DataTable dt = Util.DBFactory.NonTransactionPowerPlant.ExecuteDataTable(strSql);//执行sql语句返回Table数据以打包可以自己写 XmlDocument XmlDoc = new XmlDocument();
XmlDeclaration Xml_Note = XmlDoc.CreateXmlDeclaration("1.0","gb2312",null);
XmlDoc.AppendChild(Xml_Note);
//加入一个根元素
XmlElement Xml_Root = XmlDoc.CreateElement ( "" , "Modules" , "" ) ;
XmlDoc.AppendChild(Xml_Root) ; for(int i = 0;i < dt.Rows.Count;i ++)
{
XmlElement Xml_Info = XmlDoc.CreateElement("Module");
Xml_Root.AppendChild(Xml_Info); for(int j = 0;j < dt.Columns.Count;j ++)
{
XmlElement Xml_Item = XmlDoc.CreateElement(dt.Columns[j].ColumnName);
Xml_Item.InnerText = dt.Rows[i][j].ToString(); Xml_Info.AppendChild(Xml_Item);
}
}
return XmlDoc;
}
}
}
*/