亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? popupmenu-script.js

?? 菜單實現的主要技術為Javascript, DOM, XML 不會被任何標簽覆蓋
?? JS
?? 第 1 頁 / 共 2 頁
字號:
?/**
 *使用window.createPopup()制作的無限級(出于效率考慮,目前限制為10級)菜單,該菜單不會被任何東西遮住,而且可以跨框架
 *菜單共有兩個js文件,popupmenu-script.js和popupmenu-loadxml.js,以及一個存儲樣式的xml文件:popupmenu-style.xml
 *該文件名為popupmenu-script.js,是制作菜單的主要腳本。
 *作者:tiannet(曾次清)
 *時間:2006年06月15日
 */

var resourceDir = "";
var contextPath;	//虛擬目錄別名(與jsp中的contextPath意義相同)

var menuItemVSSubItems= new Array();//存儲一個菜單項對應的所有子菜單項
var aPopupWindows = new Array();//Popup窗口組
var mapIdVSItemInfos = new Array();//以id作為key,parentId作為value的集合
var ALLOWED_DEGREE = 10;//允許得菜單等級
var mapIdVSItemsHtml = new Array();//菜單id與子菜單顯示的html內容的對應關系(如果有子菜單的話)
var rootMenuId = -1;//根菜單ID
var isFirstWriteMenu = true;//是否第一次輸出菜單

// -------- 主菜單樣式相關定義 ---------//

//定義主菜單樣式
var m_strMainMenuStyle = "";
//主菜單項的樣式attribute
var m_strMainMenuItemStyle = "";
//主菜單項樣式Property
var m_strMMItemProBase = {};
//主菜單項鼠標懸停樣式Property
var m_strMMItemProMOver = {};
//菜單項與項之間的分割圖片
var m_strMMItemSplitImg;

// -------- 子菜單樣式相關定義 ---------//

//定義子菜單樣式
var m_strSubMenuStyle = "";
//子菜單項的樣式attribute
var m_strSubMenuItemStyle = "";
//子菜單項樣式Property
var m_strSMItemProBase = {};
//子菜單項鼠標懸停樣式Property
var m_strSMItemProMOver = {};
//子菜單項下邊框樣式(作為分割線)
var m_strSMItemBorderB = "";

// -------- end 菜單樣式相關的變量定義 ---------//


//構造函數
//@param dir 資源文件所在目錄(指圖標所在目錄等)
//@param style 樣式文件xml
function PopupMenu(dir,style) {
	resourceDir = dir;
	this.resourceDir = resourceDir;
	if( style && style != "" ) {
		this.styleFile = style;
	}
}

PopupMenu.prototype.styleFile = "popupmenu-style.xml";

//設置虛擬目錄的別名
//如果設置了該參數,則在打開菜單鏈接時會在指定的鏈接前加上該參數。不過以http開頭的鏈接除外
PopupMenu.prototype.setContextPath = function( path ) {
	contextPath = path;
}

// ------------------------------ begin 用戶可調函數得編寫 -------------------------------------//
//添加菜單項:add
//得到主菜單項:getMainItems
//得到一個菜單項的下屬子菜單:getItems

//添加一個菜單項
//@param id 菜單id,確保唯一。
//@param parentId 父菜單id。
//@param text 菜單文本
//@param action 菜單執行的動作,可以是一個鏈接地址,也可以是一段腳本或一個函數。
//@param target 執行菜單動作的目標,如果是執行一段javascript,請傳入js或javascript
//@param icon 菜單前顯示的圖標
PopupMenu.prototype.add = function(id, parentId, text, action, target, icon) {
	
	var a = {
			"id"		:	id,
			"parentId"	:	parentId,
			"icon"		:	icon,
			"text"		:	text,
			"action"	:	action,
			"target"	:	target
		};
	if( !icon || icon == "" ) {
		a.icon = null;
	}
	if( a.icon && a.icon != null && resourceDir && resourceDir != "" ) {
		a.icon = resourceDir + a.icon;
	}
	a.degree = null;
	a.fromIds = null;
	//id 與菜單項數據的對應關系
	mapIdVSItemInfos[id] =  a;

	//將子菜單加入到對應的父菜單記錄中
	if( !menuItemVSSubItems[parentId] ) {
		menuItemVSSubItems[parentId] = new Array();
	}
	menuItemVSSubItems[parentId].push( a );
	return;

}//end method add

//從xml中加載菜單數據,并且調用add方法添加
PopupMenu.prototype.loadDataFromXml = function( strDataFile ) {
	//如果數據件指定的不是絕對路徑,則加上資源目錄
	if( strDataFile.substring(0,1) != "/" && this.resourceDir && this.resourceDir != "" ) {
		strDataFile = this.resourceDir + strDataFile;
	}
	var aData = getMenuData( strDataFile );
	for( var i = 0;i < aData.length;i ++ ) {
		this.add( aData[i].id,  aData[i].parentId,  aData[i].text, aData[i].action, aData[i].target, aData[i].icon);
	}
}

//輸出菜單
PopupMenu.prototype.write = function(rootId) {
	if(typeof(rootId) == "undefined") {
		rootId = rootMenuId;
	}
	//輸出主菜單
	document.write(this.getHtml(rootId));

}

//得到輸出菜單的HTML代碼
PopupMenu.prototype.getHtml = function(rootId) {
	if(typeof(rootId) == "undefined") {
		rootId = rootMenuId;
	}
	rootMenuId = rootId;
	if( !isFirstWriteMenu ) {
		//將所有菜單數據的等級和歷經的菜單ID設為null
		for( var id in mapIdVSItemInfos ) {
			mapIdVSItemInfos[id].degree = null;
			mapIdVSItemInfos[id].fromIds = null;
			mapIdVSItemInfos[id].preObj = null;
		}
		//將菜單ID與其子菜單HTML對應關系清空
		mapIdVSItemsHtml.length = 0;
		//清空popup窗口
		aPopupWindows.length = 0;
		prevMainMenuItemObj = null;
	}
	isFirstWriteMenu = false;///調用了該方法意味著不是第一次輸出菜單
	
	//加載菜單樣式
	var styleFile = this.styleFile;
	//如果樣式文件指定的不是絕對路徑,則加上資源目錄
	if( styleFile.substring(0,1) != "/" && this.resourceDir && this.resourceDir != "" ) {
		styleFile = this.resourceDir + styleFile;
	}
	//alert(styleFile);
	loadPopupMenuStyle( styleFile );

	//輸出主菜單
	return mainItemsToHtml( getItems(rootId) );
}

//得到指定菜單項的子菜單數據
PopupMenu.prototype.getSubData = function(id) {
	return getItems(id);
}

// ------------------------------ end 用戶可調函數得編寫 -------------------------------------//

//根據菜單標識得到它下屬的子菜單數據,如果沒有,則返回false
function getItems ( id ) {
	if( !hasChildren( id ) ) {
		return false;
	}
	return menuItemVSSubItems[id];
}


//得到用于顯示一個菜單項下屬的子菜單項的窗口
//@param degree 菜單項的等級(主菜單下的視為一級)
function getPopup( degree ) {
	if( !aPopupWindows[degree] ) {
		aPopupWindows[degree] = aPopupWindows[degree - 1].document.parentWindow.createPopup();
	}
	return aPopupWindows[degree];
}

//得到菜單等級
//@param menuId 菜單ID
function getMenuDegree(menuId) {
	if(mapIdVSItemInfos[menuId].degree == null) {
		countMenuDegree(menuId);
	}
	return mapIdVSItemInfos[menuId].degree;

}//end getMenuDegree

//得到菜單所經歷的菜單等級
//@param menuId 菜單ID
function getMenuFromIds( menuId) {
	if(mapIdVSItemInfos[menuId].fromIds == null) {
		countMenuDegree(menuId);
	}
	return mapIdVSItemInfos[menuId].fromIds;

}//end getMenuFromIds

//計算菜單等級以及所經歷的菜單
//@param menuId 菜單ID
function countMenuDegree(menuId) {
	var parentId = mapIdVSItemInfos[menuId].parentId;
	var nextId = parentId;
	var degree = 0;//菜單項的等級
	var aFromIds = new Array();
	//aFromIds.push( parentId );
	while( nextId != rootMenuId && degree <= ALLOWED_DEGREE ) {
		aFromIds.push( parentId );
		parentId = mapIdVSItemInfos[nextId].parentId;
		nextId = parentId;
		degree ++;
	}
	mapIdVSItemInfos[menuId].degree = degree;
	mapIdVSItemInfos[menuId].fromIds = aFromIds;
}


//隱藏從指定id(菜單項)所在窗口所創建的所有窗口
function hideAllParentPopup( id ) {
	var degree = getMenuDegree(id);
	//隱藏該級的彈出窗口即可
	if( aPopupWindows[degree] ) {
		aPopupWindows[degree].hide();
	}

}

// ------------------------------ end 菜單項數據處理函數 -------------------------------------//

// ------------------------------ 將菜單數據轉換為html代碼的函數 -------------------------------------//
///////////////////////////////////////////////////////////////////////////////////////////////////////

//將主菜單項變為html代碼
//@param items 菜單項數據,如果未傳遞則使用全局的mainItems
//同時創建以菜單id為索引的Popup窗口
function mainItemsToHtml (items) {
	var aHtml = new Array();
	aHtml.push( "<table  unselectable='on' style='"+m_strMainMenuStyle+"'>");
	aHtml.push( "<tr>" );
	for( var i = 0;i < items.length;i ++ ) {
		aHtml.push ( "<td align=center unselectable='on'>" );
		aHtml.push ( "<div style='width:100%;' unselectable='on' id=\"" + items[i].id + "\" " );
		aHtml.push ( "	style='" + m_strMainMenuItemStyle + "' " );
		aHtml.push ( "	onmouseover=mainMenuOverStyle(\"" + items[i].id + "\",this);" );
		aHtml.push ( "showItemsOfMain(\"" + items[i].id + "\");" );
		aHtml.push ( "	onmouseout=mainMenuOutStyle(\"" + items[i].id + "\",this); " );
		//aHtml.push(" onclick=execute(\"" + items[i].id + "\"); ");
		aHtml.push(" onclick=showItemsOfMain(\"" + items[i].id + "\"); ");
		aHtml.push ( ">" + items[i].text + "</div> " );
		aHtml.push ( "</td>" );
		//如果用戶設置了分割圖片則輸出
		if( m_strMMItemSplitImg && m_strMMItemSplitImg != "" ){
			aHtml.push ( "<td style='" + m_strMMItemSplitImg + "' width=2></td>" );
		}
	}
	aHtml.push ( "</tr></table>" );
	//創建一級popup窗口
	aPopupWindows[0] = window.createPopup();
	return aHtml.join("");


}

//得到菜單的下屬子菜單HTML代碼
function getSubItemsHtml(menuId) {
	if(typeof(mapIdVSItemsHtml[menuId]) == "undefined") {
		var aItems = menuItemVSSubItems[menuId];
		var aHtml = new Array();
		aHtml.push("<table cellspacing='0' cellpadding='0' unselectable='on' style='" + m_strSubMenuStyle + "'>");
		for( var i = 0;i < aItems.length;i ++ ) {
			aHtml.push( itemToHtml( aItems[i] ) );	
		}
		aHtml.push( "</table>" );
		mapIdVSItemsHtml[menuId] = aHtml.join("");
	}
	return mapIdVSItemsHtml[menuId];
}


//將一個菜單項(非主菜單項)變為html代碼,以<tr>開頭,</tr>結尾
function itemToHtml(aItemData) {
	//是否包含子菜單
	var blnHasChildren = hasChildren( aItemData.id );
	//菜單所在等級
	var degree = getMenuDegree(aItemData.id);
	//var blnHasChildren,degree;
	var parents = "";
	for( var i = 0;i < degree;i ++ ) {
		parents += "parent.";
	}

	var aHtml = new Array();
	
	aHtml.push( "<tr unselectable='on' ");
	aHtml.push(" style='" + m_strSubMenuItemStyle + "' ");//菜單項的樣式
	
	aHtml.push(" onmouseover=" + parents + "showItems(this,\"" + aItemData.id + "\");");
	aHtml.push(parents + "subMenuOverStyle(\"" + aItemData.id + "\",this); ");
	aHtml.push(" onmouseout=" + parents + "subMenuOutStyle(\"" + aItemData.id + "\",this); ");
	aHtml.push(" onclick=" + parents + "execute(\"" + aItemData.id + "\"); ");
	aHtml.push( ">" );//tr結束的符號
	//圖標列

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆成人免费电影| 日韩欧美一二三| 欧美一区二区三区电影| 综合亚洲深深色噜噜狠狠网站| 一区二区不卡在线视频 午夜欧美不卡在 | 99热精品一区二区| 欧美一卡二卡三卡| 怡红院av一区二区三区| 国产成人亚洲精品青草天美| 欧美日韩免费观看一区二区三区| 国产午夜精品一区二区三区四区 | 欧美伊人久久久久久午夜久久久久| 精品少妇一区二区三区在线视频| 亚洲午夜激情网站| 97aⅴ精品视频一二三区| 国产亚洲综合性久久久影院| 久久99精品国产91久久来源| 欧美日韩一区二区三区高清| 亚洲欧美日韩系列| 91丨porny丨最新| 国产精品欧美极品| 成人动漫av在线| 久久综合一区二区| 国产一区在线精品| 26uuu欧美日本| 极品少妇一区二区三区精品视频 | 六月丁香婷婷色狠狠久久| 欧美视频自拍偷拍| 亚洲国产一区二区a毛片| 在线观看日韩电影| 亚洲一本大道在线| 欧美三级三级三级| 五月综合激情日本mⅴ| 欧美日韩日日骚| 五月天激情小说综合| 欧美日韩亚洲另类| 麻豆国产91在线播放| 久久久噜噜噜久久人人看| 免费看欧美女人艹b| 精品国产制服丝袜高跟| 国产老肥熟一区二区三区| 久久久久久久久岛国免费| 国产伦理精品不卡| 国产精品久久久久久久久晋中 | 欧美日韩日日夜夜| 天堂蜜桃91精品| 6080亚洲精品一区二区| 秋霞影院一区二区| 国产日韩欧美一区二区三区乱码| 丰满岳乱妇一区二区三区| 国产精品福利电影一区二区三区四区| av成人动漫在线观看| 亚洲一区二三区| 欧美肥大bbwbbw高潮| 国产中文一区二区三区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 久久99久久精品| 中文字幕在线视频一区| 99re视频精品| 日本美女视频一区二区| 国产欧美精品在线观看| 在线免费观看日韩欧美| 开心九九激情九九欧美日韩精美视频电影| 久久久噜噜噜久久中文字幕色伊伊 | 国产黄人亚洲片| 亚洲激情图片一区| 日韩一级片在线播放| 播五月开心婷婷综合| 日韩福利电影在线| 18欧美亚洲精品| 日韩欧美国产系列| 91丨porny丨国产入口| 麻豆国产一区二区| 一区二区三区日韩精品视频| 欧美电影免费观看完整版| 99国产精品久久久久久久久久| 午夜免费欧美电影| 一色屋精品亚洲香蕉网站| 欧美高清一级片在线| 99国产精品99久久久久久| 免费在线看一区| 亚洲激情校园春色| 欧美国产精品v| 欧美一区二区三区视频免费| 91在线云播放| 风间由美中文字幕在线看视频国产欧美| 亚洲成人av一区二区三区| 国产精品三级视频| 精品美女一区二区| 777奇米四色成人影色区| 91亚洲大成网污www| 国产精品 日产精品 欧美精品| 日韩精品色哟哟| 亚洲女性喷水在线观看一区| 国产日韩欧美a| 欧美成人女星排行榜| 91精品国产一区二区三区香蕉| 色婷婷综合久久久中文字幕| 国精产品一区一区三区mba桃花| 午夜欧美视频在线观看| 亚洲最大色网站| 亚洲欧美日韩国产手机在线| 国产精品色在线观看| 久久久三级国产网站| 精品国产成人系列| 日韩欧美在线观看一区二区三区| 欧美日韩不卡视频| 欧美日韩免费电影| 欧美日韩国产高清一区| 欧美性videosxxxxx| 欧美三级电影在线观看| 欧美剧在线免费观看网站| 欧美无人高清视频在线观看| 色偷偷88欧美精品久久久| 色先锋资源久久综合| 91精品福利视频| 欧美视频在线观看一区| 欧美日韩在线电影| 欧美日韩成人激情| 日韩丝袜美女视频| 久久久噜噜噜久久中文字幕色伊伊 | 成人午夜大片免费观看| 国产九九视频一区二区三区| 国产精品一区久久久久| 国模一区二区三区白浆| 国产福利一区二区三区视频在线| 国产suv精品一区二区883| 成人一级黄色片| 99精品国产91久久久久久| 欧美综合一区二区| 91精品国产一区二区| 精品久久久久av影院| 国产欧美日本一区视频| 亚洲精品免费一二三区| 偷拍日韩校园综合在线| 久久国产精品露脸对白| 成人高清视频免费观看| 色婷婷激情一区二区三区| 欧美美女直播网站| 精品免费日韩av| 亚洲视频在线一区观看| 丝瓜av网站精品一区二区 | 日韩精品欧美精品| 国产九九视频一区二区三区| 色综合亚洲欧洲| 日韩欧美国产麻豆| 精品少妇一区二区| 综合精品久久久| 免费在线观看日韩欧美| 粉嫩av亚洲一区二区图片| 91搞黄在线观看| 久久综合久久鬼色中文字| 亚洲欧美成人一区二区三区| 免费成人av在线| 99国产精品久久久久久久久久久| 制服丝袜亚洲精品中文字幕| 欧美国产综合色视频| 亚洲成人av电影| 成人免费黄色大片| 欧美日韩aaaaaa| 中文字幕在线观看不卡视频| 看国产成人h片视频| 91福利国产成人精品照片| 久久久亚洲综合| 日韩中文欧美在线| 99精品国产99久久久久久白柏| 精品免费日韩av| 亚洲成人免费在线观看| 99久久久国产精品| 久久久久久久av麻豆果冻| 亚洲在线观看免费视频| 国产精品99久| 91精品国产色综合久久不卡电影| 中文字幕一区三区| 国产91精品一区二区麻豆网站 | 日韩在线一区二区| 97超碰欧美中文字幕| 久久久综合精品| 青青草97国产精品免费观看无弹窗版 | 欧美日韩综合色| 中文字幕在线不卡国产视频| 韩国av一区二区| 欧美理论电影在线| 一区二区免费看| 99麻豆久久久国产精品免费 | 欧美96一区二区免费视频| 欧美综合在线视频| 亚洲色图色小说| av在线不卡观看免费观看| 国产亚洲精品久| 国产一区二区三区四| 日韩精品最新网址| 免费久久99精品国产| 欧美美女喷水视频| 视频一区在线播放| 欧美精品高清视频| 日韩综合在线视频| 91精品久久久久久久99蜜桃| 亚洲成av人片在线| 7777精品伊人久久久大香线蕉的|