純js樹型菜單

 
<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html; charset=([$_CHARSET_])">
<TITLE> 菜單 </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<link rel=stylesheet href="([$_CSSINC_])" type="text/css">
<style>
body {
font-family: arial, 宋體, serif;
font-size:14px;
}
tr.unchanged {
}
   tr.changed {
   background-color: #CC3300
   }
   div.active {
   background-color: #00CC66;
   cursor: hand
   }
div.inactive{
}
   div.active1 {
   cursor: hand
   }
</style>
</HEAD>
<body>
<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
<!--
   //([$_ARRAY_])
   var priv_id=new Array("0", "0-0", "0-1", "1", "1-0", "2", "2-0", "2-0-0", "2-1", "2-1-0");
   var priv_name=new Array("用戶管理", "添加用戶", "權限變更", "系統管理", "系統權限管理", "信息系統功能一", "點擊流分析", "用戶熱點路徑分析", "點擊圖分析", "用戶熱點點擊分析");
   var priv_value=new Array("###", "/php_test/admin_adduser.php", "/php_test/admin_moduser.php", "###", "/php_test/admin_modsyspriv.php", "###", "##", "#", "##", "#");
   var priv_type=new Array("0", "2", "2", "0", "2", "0", "1", "2", "1", "2");
   //注:上面的4個數組確定了菜單屬性. priv_id爲菜單項目代碼, 用以確定菜單層級關係; priv_name爲顯示名稱; priv_value爲菜單鏈接; priv_type爲構建菜單時的輔助變量, 0-主鍵, 1-副鍵, 2-系統鏈接, 3-外部鏈接
function GetObjById(obj_id){
   return document.getElementById(obj_id);
   }
   function CreatObj(obj_tag){
   return document.createElement(obj_tag);
   }
   function SetObjAttrib(obj, obj_name, obj_id, obj_text, obj_class){
   obj.name=obj_name;
   obj.id=obj_id;
   if(obj_text) obj.innerText=obj_text;
   if(obj_class) obj.className=obj_class;
   }
   function AddEvent(obj, event, func, param){
   var aaa=obj;
   var _st = aaa.attachEvent;
   aaa.attachEvent = function(md,fr) {
   if(typeof fr == 'function'){
   var argu = Array.prototype.slice.call(arguments,2);
   var f = (function(){ fr.apply(null,argu); });
   return _st(md,f);
   }
   return _st(md,fr);
   }
   aaa.attachEvent(event, func, param);
   aaa.appendChild(obj);
   }
   function CreateSubMenu(menu_root, menu_name, menu_id, menu_text, menu_class){
   var sub_menu=CreatObj("div");
   SetObjAttrib(sub_menu, menu_name, menu_id, menu_text, menu_class);
   menu_root.appendChild(sub_menu);
   return sub_menu;
   }
   function ShowName(param){
   alert(param);
   }
   function ChangeMenu(menu_id){
   for(var i=0; i<priv_id.length; i++){
   if(priv_type[i]=="0"){
   GetObjById(priv_id[i]).style.display="";
   }else{
   if( (GetGrade(priv_id[i])==GetGrade(menu_id)&&GetUperGrade(priv_id[i])==GetUperGrade(menu_id)) || (GetUperGrade(priv_id[i])==menu_id) ){
   GetObjById(priv_id[i]).style.display="";
   }else{
   GetObjById(priv_id[i]).style.display="none";
   }
   }
   }
   }
   function ActiveMenu(menu_id){
   //alert(GetObjById(menu_id).id+" active");
   GetObjById(menu_id).className="active";
   }
   function InactiveMenu(menu_id){
   //alert(GetObjById(menu_id).id+" inactive");
   GetObjById(menu_id).className="inactive";
   }
   function ActiveMenu1(menu_id){
   //alert(GetObjById(menu_id).id+" active");
   GetObjById(menu_id).className="active1";
   }
   function InactiveMenu1(menu_id){
   //alert(GetObjById(menu_id).id+" inactive");
   GetObjById(menu_id).className="inactive1";
   }
   function OpenUrl(_url, _target){
   // alert(_url+" => "+_target);
   window.open(_url, _target)
   }
   function Logout(_url){
   OpenUrl(_url, "_parent");
   }
   function OpenContent(_url){
   OpenUrl("([$_SYSTEMROOT_])"+_url, "content");
   }
   function OpenContent1(_url){
   OpenUrl(_url, "content");
   }
   function CountChar(str, tag){
   var ret=0;
   for(var i=0; i<str.length; i++){
   if(str.charAt(i)==tag){
   ret++;
   }
   }
   return ret;
   }
   function CombineChar(tag, n){
   var ret="";
   for(var i=0; i<n; i++){
   ret+=tag;
   }
   return ret;
   }
   function GetGrade(str){
   return CountChar(str, "-");
   }
   function GetUperGrade(str){
   if(str.indexOf("-")!=-1){
   return str.substr(0, str.lastIndexOf("-"));
   }else{
   return str;
   }
   }
   function GetRootGrade(str){
   if(str.indexOf("-")!=-1){
   return str.substr(0, str.indexOf("-"));
   }else{
   return str;
   }
   }
var login=CreatObj("div");
   SetObjAttrib(login, "login", "login", "歡迎 ([$_USERNAME_]) !");
   AddEvent(login, "onmouseover", ActiveMenu1, "login");
   AddEvent(login, "onmouseout", InactiveMenu1, "login");
   document.body.appendChild(login);
var menu=CreatObj("div");
   SetObjAttrib(menu, "menu_root", "menu_root");
   document.body.appendChild(menu);
var logout=CreatObj("div");
   SetObjAttrib(logout, "logout", "logout", "安全退出");
   AddEvent(logout, "onclick", Logout, "([$_PAGELOGOUT_])");
   AddEvent(logout, "onmouseover", ActiveMenu, "logout");
   AddEvent(logout, "onmouseout", InactiveMenu, "logout");
   document.body.appendChild(logout);
var grade;
   if(priv_id.length!=0){
   for(var i=0; i<priv_id.length; i++){
   grade=CountChar(priv_id[i], "-");
   if(priv_type[i]=="0"||priv_type[i]=="1"){
   var sub_menu=CreateSubMenu(menu, "menu", priv_id[i], CombineChar(" ", grade)+"+ "+priv_name[i]);
   AddEvent(sub_menu, "onclick", ChangeMenu, priv_id[i]);
   AddEvent(sub_menu, "onmouseover", ActiveMenu, priv_id[i]);
   AddEvent(sub_menu, "onmouseout", InactiveMenu, priv_id[i]);
   }else{
   var sub_menu=CreateSubMenu(menu, "menu", priv_id[i], CombineChar(" ", grade)+"- "+priv_name[i]);
   if(priv_type[i]=="2"){
   AddEvent(sub_menu, "onclick", OpenContent, priv_value[i]);
   }else if(priv_type[i]=="3"){
   AddEvent(sub_menu, "onclick", OpenContent1, priv_value[i]);
   }
   AddEvent(sub_menu, "onmouseover", ActiveMenu, priv_id[i]);
   AddEvent(sub_menu, "onmouseout", InactiveMenu, priv_id[i]);
   }
   if(priv_type[i]!="0") GetObjById(priv_id[i]).style.display="none";
   }
   }else{
   SetObjAttrib(menu, "menu_root", "menu_root", "您沒有任何權限.");
   }
//-->
</SCRIPT>
</BODY>
</HTML>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章