js多窗口的实现

var gMenuXml = null;
var DivID="";
var FrmMainID="";
var cuurentMainFrameWindow=null;
function CreateMainDiv()
{
    var div=document.getElementById("FrmInfo");
    var frmMain = document.createElement("iframe");
    frmMain.id=FrmMainID;
   
    var divPagePathInfo=document.getElementById("divPagePathInfo");
   
    var divPagePath=document.createElement("div");
    divPagePath.id="divPagePath_"+FrmMainID;
    $(divPagePath).attr("float","left");
   
    divPagePathInfo.appendChild(divPagePath);
    div.appendChild(frmMain);
}
function GetTop2_NavWidth()
{
 var top2_logoW=CutWidthPX($(".top2_logo").css("width"));
 var scroll_rightW=CutWidthPX($("#scroll-right").css("width"));
 var scroll_leftW=CutWidthPX($("#scroll-left").css("width"));
 var top2_navW=parseInt(window.document.body.clientWidth)-top2_logoW-scroll_leftW-scroll_rightW;
 $(".top2_nav,.top2_nav div").css("width",top2_navW+"px");
 $(".top2_nav,.top2_nav div").css("overflow","hidden");
 $(".top2_nav,.top2_nav div").css("hight","70px");
 return top2_navW;
}
$(document).ready(Init);
function Init()
{
 $(window).bind("resize", ResizeWrapper);
 ResizeWrapper();
 LoadMenu();
 SetTopNav("管理首页","Info");
}

function ResizeWrapper()
{
 var h = 105;
 var wh = $(window).height();
 $(".wrapper").css("height", (wh - h - 23) + "px");
 $(".menu").css("height", (wh - h - 31) + "px");
 return GetTop2_NavWidth();
}

function LoadMenu()
{
    $(".menu").html("菜单数据读取中...");
    $.ajax({
        cache: false,
        url: "/Admin/GetMenu",
        dataType: "xml",
        error: function(r, s, e){ alert(e); },
        success: LoadMenuCallback
    });
}
function LoadMenuCallback(ret)
{
    if (typeof(ret) != "object")
    {
        alert("加载管理菜单失败:" + ret);
        return;
    }
    gMenuXml = ret;
    BuildMenu();
}

function BuildMenu()
{
    $(".menu").empty();
    var root = gMenuXml.documentElement;
    var group, item, id, html = "";
    for (var i = 0; i < root.childNodes.length; i++)
    {
        group = root.childNodes[i];
        html += "<dt>" + group.getAttribute("Title") + "</dt>";
        html += "<dd><ul>";
        for (var j = 0; j < group.childNodes.length; j++)
        {
            item = group.childNodes[j];
            id = item.getAttribute("ID");
            html += "<li onclick=/"SetTopNav('"+item.getAttribute("Title")+"','"+id+"')/"><a id=/"LnkMenu_" + id + "/" href=/"javascript:NavigatePage('" + id + "');/">" + item.getAttribute("Title") + "</a></li>";
        }
        html += "</ul></dd>";
    }
    $(".menu").append(html);
    $(".menu dt").each(function(){ $(this).bind("click", ChangeGroup); });
    NavigatePage(gMenuXml.documentElement.getAttribute("ID"));
}

function ChangeGroup(e)
{
    var evt = e || window.event;
    var el = evt.scrElement || evt.target;
    $(".menu dd").hide();
    $(el).next().show(200);
}

function NavigatePage(cmd)
{
    var i, j, group, item, path, url;
    var root = gMenuXml.documentElement;
    if (cmd == root.getAttribute("ID"))
    {
        url = gMenuXml.documentElement.getAttribute("Url");
        path = "<a href=/"javascript:SelectCurrentNav('" + root.getAttribute("ID") + "');/" >" + root.getAttribute("Title") + "</a>";
    }
    else
    {
        for (i = 0; i < gMenuXml.documentElement.childNodes.length; i++)
        {
            group = gMenuXml.documentElement.childNodes[i];
            for (j = 0; j < group.childNodes.length; j++)
            {
                item = group.childNodes[j];
                if (item.getAttribute("ID") == cmd)
                {
                    url = item.getAttribute("Url");
                    path =  "<a href=/"javascript:SelectCurrentNav('" + group.parentNode.getAttribute("ID") + "');/">" + group.parentNode.getAttribute("Title") + "</a>" +
                        " - " +
                        group.getAttribute("Title") +
                        " - " +
                        item.getAttribute("Title");
                    break;
                }
            }
            if (url != undefined) break;
        }
    }
    ChangeMenuSelected(cmd);
    //$("#DivPagePath").html(path);
    $("#divPagePath_"+FrmMainID).html(path);
//    WindowsManager.RedirectMainFrame(url);

    var array;
    array=GetTop2NavAllLi();
    for(var i=0;i<array .length-1;i++)
    {
        if(array[i].id=="LiNav-FrmMain-"+cmd)
        {     
            return;
        }
    }
    WindowsManager.RedirectMainFrame(url);
}

function ChangeMenuSelected(cmd)
{
    $(".menu a").removeClass();
    $(".menu a[id=LnkMenu_" + cmd + "]").addClass("selected");
}
function GetTop2NavAllLi()
{
    var obj,array;
    obj=document.getElementById("top2nav");
    array=obj.getElementsByTagName("li");
    return array;
}
function SelectCurrentNav(id)
{
    $("#divPagePath_"+NowDivFrmID).hide();
    $("#"+NowDivFrmID).hide();
    AttrClass("#LiNav-"+NowDivFrmID,"top2_nav_li_1");
    AttrClass("#lnk-"+NowDivFrmID,"top2_nav_li_a1");
    AttrClass("#LiNav-FrmMain-"+id,"top2_nav_li_2");
    AttrClass("#lnk-FrmMain-"+id,"top2_nav_li_a2");
    NowDivFrmID="FrmMain-"+id;
    $("#"+NowDivFrmID).show();
    $("#divPagePath_"+NowDivFrmID).show();
    cuurentMainFrameWindow=NowDivFrmID;
    Utility.GetMain();
}
var NowDivFrmID="";
var ArrayTopNav=new Array();
function SetTopNav(name,id)
{
    var array;
    array=GetTop2NavAllLi();
    for(var i=0;i<array .length;i++)
    {
        if(array[i].id=="LiNav-FrmMain-"+id)
        {           
            SelectCurrentNav(id);
            return;
        }
    }
    //隐藏
    var navUl=document.getElementById("top2nav");
    if(array.length>0)
    {
        //var ulParentWidth=CutWidthPX($(navUl.parentNode).css("width"));
        var ulParentWidth=ResizeWrapper();
        var liWidth=CutWidthPX($("#top2nav li").css("width"));
        if(((parseInt(liWidth))*array.length)>ulParentWidth)
        {
            $("#scroll-left").show();
            $("#scroll-right").show();
            $("#scroll-left").attr("class","scroll-left2");
            $("#scroll-right").attr("class","scroll-right1");
            var left=CutWidthPX($("#top2nav").css("left"));
            left=left-(parseInt(liWidth));
            $("#top2nav").css("left",left);
        }
    }
  
    if(NowDivFrmID!="")
    {
        $("#"+NowDivFrmID).hide();
    }
    FrmMainID="FrmMain-"+id;
    CreateMainDiv();
    WindowsManager.SetMainFrameID(FrmMainID);
    ShowDivFrm(FrmMainID);
   
    var navLi=document .createElement("li");
    navLi.id="LiNav-"+FrmMainID;
    navLi.className="top2_nav_li_2";
    $(navLi).attr("title",name);
    navUl.appendChild(navLi);
   
    //文本内容
    if(name.length>5)
    {
        name=name.substring(0,4)+"...";
    }
    if(FrmMainID=="FrmMain-Info")
    {
        document.getElementById("LiNav-"+FrmMainID).innerHTML="<span id=/"spTxt-"+FrmMainID+"/">"+name+"</span>";
    }
    else
    {
        document.getElementById("LiNav-"+FrmMainID).innerHTML="<span id=/"spTxt-"+FrmMainID+"/">"+name+"</span><a class='top2_nav_li_a2' id=/"lnk-"+FrmMainID+"/" title='关闭' href=/"javascript:NavClose('LiNav-"+FrmMainID+"','"+FrmMainID+"');/">X</a>";
    }
    //点击
    var liObject=document.getElementById("spTxt-"+FrmMainID);
    ArrayTopNav[ArrayTopNav.length]={FrmMainID:FrmMainID};
    $(liObject).attr("index",ArrayTopNav.length-1);
    $(liObject).bind("click",function(){
        var index=$(this).attr("index");
        ShowDivFrm(ArrayTopNav[index].FrmMainID);
    })
    NowDivFrmID=FrmMainID;
}
function NavClose(liNavID,frmID)
{
    document.getElementById(frmID).parentNode.removeChild(document.getElementById(frmID));
    document.getElementById(liNavID).parentNode.removeChild(document.getElementById(liNavID));
    var navUl=document.getElementById("top2nav");
    var arrNavLi=navUl.getElementsByTagName("li");
    if(arrNavLi.length>0)
    {
        var liMainFrm=arrNavLi[arrNavLi.length-1].id;
        var mainFrm=liMainFrm.substring(liMainFrm.indexOf('-')+1,liMainFrm.length);
        $("#"+mainFrm).show();
        $("#divPagePath_"+mainFrm).show();
        AttrClass("#LiNav-"+mainFrm,"top2_nav_li_2");
        AttrClass("#lnk-"+mainFrm,"top2_nav_li_a2");
        if(mainFrm!=NowDivFrmID)
        {
            $("#"+NowDivFrmID).hide();
            $("#divPagePath_"+NowDivFrmID).hide();
            AttrClass("#LiNav-"+NowDivFrmID,"top2_nav_li_1");
            AttrClass("#lnk-"+NowDivFrmID,"top2_nav_li_a1");
        }
        NowDivFrmID=mainFrm
        //隐藏
        //var ulParentWidth=CutWidthPX($(navUl.parentNode).css("width"));
        var ulParentWidth=ResizeWrapper();
        var liWidth=CutWidthPX($("#top2nav li").css("width"));
        var left=CutWidthPX($("#top2nav").css("left"));
        //alert(left);
        if(left<0)
        {
            left=parseInt(left)+parseInt(liWidth);
            $("#top2nav").css("left",left);
        }
        else
        {
            if(((parseInt(liWidth))*arrNavLi.length)<ulParentWidth)
            {
                left=0;
                $("#scroll-left").hide();
                $("#scroll-right").hide();
            }
        }   
       
    }
}
function ShowDivFrm(id)
{
    if(NowDivFrmID!="")
    {
        $("#"+NowDivFrmID).hide();
        $("#divPagePath_"+NowDivFrmID).hide();
        AttrClass("#LiNav-"+NowDivFrmID,"top2_nav_li_1");
        AttrClass("#lnk-"+NowDivFrmID,"top2_nav_li_a1");
    }
    NowDivFrmID=id;
    AttrClass("#LiNav-"+NowDivFrmID,"top2_nav_li_2");
    AttrClass("#lnk-"+NowDivFrmID,"top2_nav_li_a2");
    $("#"+NowDivFrmID).show();
    $("#divPagePath_"+NowDivFrmID).show();
    cuurentMainFrameWindow=NowDivFrmID;
    Utility.GetMain();
    ChangeMenuSelected(id.toString().substring(8,id.toString().length));
}
function AttrClass(id,className)
{
    $(id).attr("class",className);
}
function CutWidthPX(widthStr)
{
    return widthStr.substring(0,widthStr.length-2);
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值