📄 mainmenu.js
字号:
//装载Menu.js文件
System.LoadUnit("Menu");
var cMainMenuHTMLBeforeItems = "<table id=\"?id?\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>\n";
var cMainMenuHTMLAfterItems = "</tr></table>\n";
//定义全局变量保存所有的被定义的MainMenu
var arrAllMainMenu = [];
function MainMenu(id,cls,onclick,onmouseover,onmouseout)
{
//在全局变量中加入该MainMenu
arrAllMainMenu[id] = this;
this.Id = id;
//保存当前显示的子菜单
this.ItemOnShow = "";
this.MenuLevel = 0;
//MainMenu显示的样式
if(typeof(cls)=="undefined")
this.Class = "mainmenu";
else
this.Class = cls;
//MainMenu的Click事件,缺省为MainMenuOnClick
if(typeof(onclick)=="undefined")
this.OnClick = MainMenuOnClick;
else
this.OnClick = onclick;
//MainMenu的OnMouseOver事件,缺省为MainMenuOnMouseOver
if(typeof(onmouseover)=="undefined")
this.OnMouseOver = MainMenuOnMouseOver;
else
this.OnMouseOver = onmouseover;
//MainMenu的OnMouseOut事件,缺省为MainMenuOnMouseOut
if(typeof(onmouseout)=="undefined")
this.OnMouseOut = MainMenuOnMouseOut;
else
this.OnMouseOut = onmouseout;
//MainMenud的所有子菜单项数组
this.Items = [];
//向MainMenu中添加子菜单项
this.Add = function(id,text,cls,onclick)
{
this.AddItem(new MenuItem(id,text,cls,onclick));
}
this.AddItem = function(mi)
{
var len = this.Items.length;
this.Items[len] = mi;
mi.MenuLevel = 1;
mi.Parent = this;
mi.Path += "arrAllMainMenu[\"" + this.Id + "\"].Items[" + len + "]";
}
//查询MainMenu中的子菜单项,可以介绍菜单项id或者菜单项在MainMenu中索引为参数
this.Item = function(index)
{
var itm = null;
if(typeof(index) == "string")
{
var i;
for(i=0;i<this.Items.length;i++)
if(this.Items[i].Id == index)
itm = this.Items[i];
}
else if(typeof(index) == "number")
itm = this.Items[index];
return itm;
}
this.HTMLBeforeItems = function()
{
var strOutput;
strOutput = cMainMenuHTMLBeforeItems.replace("?id?",this.Id);
return strOutput;
}
this.WriteHTML = function()
{
var i;
document.write(this.HTMLBeforeItems());
for(i=0;i<this.Items.length;i++)
document.write("<td id=\""+ this.Items[i].Id +"\"></td>");
document.write(cMainMenuHTMLAfterItems);
for(i=0;i<this.Items.length;i++)
{
var sub = this.Items[i].SubItems;
if(sub != null)
{
sub.WriteHTML();
sub.WriteItemsHTML();
}
}
}
this.UpdateHTML = function()
{
var ctl = document.all(this.Id);
ctl.className = this.Class;
ctl.menulevel = this.MenuLevel;
ctl.onclick = this.OnClick;
ctl.onmouseover = this.OnMouseOver;
ctl.onmouseout = this.OnMouseOut;
var i;
for(i=0;i<this.Items.length;i++)
{
var itm = this.Items[i];
var ctl = document.all(itm.Id);
ctl.innerHTML = " " + itm.Text + " ";
ctl.title = itm.Hint;
ctl.className = itm.Class;
ctl.tag = itm.Tag;
ctl.onclick = itm.OnClick;
ctl.menulevel = 0;
if(itm.SubItems != null)
{
ctl.menuitem = itm.SubItems.Id;
itm.SubItems.UpdateHTML();
itm.SubItems.UpdateItemsHTML();
}
}
}
}
function MainMenuOnClick()
{
event.cancelBubble = true;
var evt = event.srcElement;
var ctl_mm = evt.parentElement.parentElement.parentElement;
if(arrAllMainMenu[ctl_mm.id].ItemOnShow == "")
{
arrAllMainMenu[ctl_mm.id].ItemOnShow = evt.menuitem;
PopMenuOnShow(evt.menuitem,ctl_mm.offsetLeft+evt.offsetLeft,ctl_mm.offsetTop+ctl_mm.offsetHeight+1);
evt.className = "menuitemsinset";
}
else
{
PopMenuOnHide();
arrAllMainMenu[ctl_mm.id].ItemOnShow = "";
evt.className = "menuitemsoutset";
}
}
function MainMenuOnMouseOver()
{
var evt = event.srcElement;
var ctl_mm = evt.parentElement.parentElement.parentElement;
if(evt.menulevel=="0")
{
evt.className = "menuitemsoutset";
if((arrAllMainMenu[ctl_mm.id].ItemOnShow == evt.id) || (arrAllMainMenu[ctl_mm.id].ItemOnShow == ""))
return;
PopMenuOnHide();
PopMenuOnShow(evt.menuitem,ctl_mm.offsetLeft+evt.offsetLeft,ctl_mm.offsetTop+ctl_mm.offsetHeight+1);
arrAllMainMenu[ctl_mm.id].ItemOnShow = evt.menuitem;
}
else
MenuItemOnHighLight();
}
function MainMenuOnMouseOut()
{
var evt = event.srcElement;
if(evt.menulevel=="0")
evt.className = "menuitems";
else
MenuItemOnLowLight();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -