转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
javascript+xml实现二级下拉菜单一         ★★★★

javascript+xml实现二级下拉菜单一

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1445 更新时间:2009/4/23 11:26:53
<td style='" + m_strMMItemSplitImg + "' width=2></td>";
}
var intMenuWidth = 0;

for ( var i = 0 ; i< m_objMMList.length ; i ++ )
{
var menuNode = m_objMMList[i];
var attList = menuNode.attributes;
var menuText = attList.getNamedItem("text").text;
var menuHref = attList.getNamedItem("href").text;
var menuTarget = "";
if( attList.getNamedItem("target") )
menuTarget = attList.getNamedItem("target").text;
else
menuTarget = "_self";

var intMenuWidth;
if( attList.getNamedItem("width") )
intMenuWidth = attList.getNamedItem("width").text;

var strSubMenuID = "sm" + i;
var strMouseOverEvent = "";
var strClickEvent = "";
//如果有子拉菜单,则显示
if ( menuNode.hasChildNodes() ){
strMouseOverEvent = "chgMainMenuStyle(this,true);spreadMainMenu(this,\"" + strSubMenuID + "\",true);";
strClickEvent = strMouseOverEvent;
}else{
strMouseOverEvent = "chgMainMenuStyle(this,true);";
strClickEvent = "onClickEvent('" + menuHref + "','" + menuTarget + "','" + menuText + "');";
}

strHtml += "<td width=" + intMenuWidth + " style='" + m_strMainMenuItemStyle + "' id=mm" + i +
" onmouseover=" + strMouseOverEvent +
" onmouseout='chgMainMenuStyle(this,false);beginHideSubMenu();' " +
" onclick=" + strClickEvent +
" >" + menuText+"</td>";

//如果用户设置了分割图片则输出
if( m_strMMItemSplitImg && m_strMMItemSplitImg != "" ){
strHtml += "<td style='" + m_strMMItemSplitImg + "' width='2'></td>";
}
}
strHtml += "<td></td>";
strHtml += "</tr>";
strHtml += "</table>";
strHtml += "</div>";

document.write(strHtml);
}//end printMainMenu()

//打印一级子菜单
function printSubMenu() {
for ( var i = 0 ; i< m_objMMList.length ; i ++ ) {
menuNode = m_objMMList[i];
//如果没有子菜单,执行下一个循环
if ( !menuNode.hasChildNodes() ){
continue;
}

//得到主菜单下的子菜单集合
var objSMList = menuNode.childNodes;
var intSubMenuLen = objSMList.length;

//每个主菜单对应的子菜单id
var strSubMenuID = "sm" + i;
//arrMenuID.push(strSubMenuID);

var strSubMenuHtml = "<div style='display:none;border:0;' id='" + strSubMenuID + "'>" +
" <table cellspacing='0' cellpadding='4' style='" + m_strSubMenuStyle + "'>";

for ( var j = 0;j < intSubMenuLen;j ++ ) {
var objSubMenu = objSMList[j];
var attList = objSubMenu.attributes;
var menuText = attList.getNamedItem("text").text;
var menuHref = attList.getNamedItem("href").text;
var menuTarget = "";
if( attList.getNamedItem("target") )
menuTarget = attList.getNamedItem("target").text;
else
menuTarget = "_self";

//如果有三级子菜单,则需要箭头标识
var strRightRow = " ";
//二级子菜单id
var strSubMenu2ID = strSubMenuID + "_sm" + j;
//鼠标悬停和移出时一级子菜单的响应
var strMouseOverEvent = "parent.chgSubMenuStyle(this,true);parent.endHideSubMenu();";
var strMouseOutEvent = " parent.chgSubMenuStyle(this,false);parent.beginHideSubMenu();";

//位置信息显示
var strPosition = STR_POS_FRONT + m_objMMList[i].attributes.getNamedItem("text").text + "->"
+ menuText;
//alert(strPosition);
if ( objSubMenu.hasChildNodes() ) {
//打印其二级子菜单
printSubMenu2(objSubMenu,strSubMenu2ID,strPosition);

strMouseOverEvent += "parent.showSubMenu2(\"" + strSubMenu2ID + "\",this);";
//strMouseOutEvent += "parent.beginHideSubMenu();";
strRightRow = "<font style='font-family:Webdings;font-size:7pt;height:10'>4</font>";
strPosition = "";
} else {
//strMouseOverEvent += "parent.endHideSubMenu();";
strMouseOverEvent += "parent.hideSubMenu2();";
}
var strOnClickEvent = "javascript:parent.onClickEvent('" + menuHref + "','" + menuTarget + "','" + strPosition + "');"
strSubMenuHtml += "<tr style='" + m_strSubMenuItemStyle + "' " +
" onmouseover='" + strMouseOverEvent + "' " +
" onmouseout='" + strMouseOutEvent + "' " +
" onclick= " + strOnClickEvent + " " +
" > <td width='3' nowrap style='" + m_strSMItemBorderB + "'> </td>"+
"  <td nowrap style='" + m_strSMItemBorderB + "'>" + menuText + "</td>"+
"  <td width='10' align='right' nowrap style='" + m_strSMItemBorderB + "'>" + strRightRow + "</td>" +
"</tr>";
//alert(objSubMenu.text.length);

}//end for 子菜单个数循环

strSubMenuHtml += "</table></div>";

document.write(strSubMenuHtml);

}//end for 主菜单个数循环
}//end function printSubMenu()

/**打印二级子菜单
*objSubMenu : 一级子菜单对象
*strSubMenu2ID :将要打印的二级菜单的id
*strPosition:主菜单和一级子菜单文本描述
*/
function printSubMenu2(objSubMenu,strSubMenu2ID,strPosition)
{
//arrMenuID.push(strSubMenu2ID);
var objSMList = objSubMenu.childNodes;
var intSubMenu2Len = objSMList.length;

var strSubMenu2Html = "<div style='display:none;border:0;' id='" + strSubMenu2ID + "'>" +
" <table cellspacing='0' cellpadding='4' style='" + m_strSubMenuStyle + "'>";

for ( var i = 0; i< intSubMenu2Len;i ++ )
{
var objSubMenu2 = objSMList[i];
var attList = objSubMenu2.attributes;
var menuText = attList.getNamedItem("text").text;
var menuHref = attList.getNamedItem("href").text;

var menuTarget = "";
if( attList.getNamedItem("target") )
menuTarget = attList.getNamedItem("target").text;
else
menuTarget = "_self";

var strPostion2 = strPosition + "->" + menuText;

strSubMenu2Html += "<tr style='" + m_strSubMenuItemStyle + "' " +
" onmouseover='parent.parent.chgSubMenuStyle(this,true);" +
" parent.parent.endHideSubMenu(); ' " +
" onmouseout='parent.parent.chgSubMenuStyle(this,false);parent.parent.beginHideSubMenu();' " +
" onclick=javascript:parent.parent.onClickEvent('" + menuHref + "','" + menuTarget + "','" + strPostion2 + "'); " +
" > <td width='3' nowrap style='" + m_strSMItemBorderB + "'> </td>"+
"  <td nowrap style='" + m_strSMItemBorderB + "'>" + menuText + "</td>"+
"  <td width='3' nowrap style='" + m_strSMItemBorderB + "'> </td>" +
"</tr>";
}
strSubMenu2Html += "</table></div>";

document.write(strSubMenu2Html);

}//end function printSubMenu2

/**
*打开链接,所有菜单的链接都是通过这个函数来打开。并显示位置信息
*@param strUrl - 打开链接的地址
*@param strTarget - 打开链接的target。如_self,_blank等
*@param strViewText - 位置信息
*/
function onClickEvent(strUrl,strTarget,strViewText)
{
m_bolFirst = true;//以后响应菜单时变为为第一次响应
//document.all.selected_menu.innerText = strViewText;

m_strTitle = "";
var arrText = strViewText.split("->");
if ( arrText.length >0 )
m_strTitle = arrText[0];
for (var i = 1; i < arrText.length ; i ++ )
{
m_strTitle += "-" + arrText[i];
}
m_strTitle = m_strTitle.substring(STR_POS_FRONT.length);
//隐藏下拉菜单
hideSubMenu();
//显示title
if (m_strTitle != "")
{
//parent.document.title = m_strTitle;
}

if ( strUrl == "#" )
return;

//如果url是一个javascript字符串则直接执行之
if(strUrl.toLowerCase().indexOf("javascript") != -1) {
executeScript(strUrl);
return;
}

strUrl = m_strContextPath + strUrl;//地址应加上虚拟目录

window.open(strUrl,strTarget);
}
//执行一个javascript字符串
function executeScript(strScript)
{
//第一个eval得到该字符串表示的变量,第二个eval则执行变量里的脚本
eval(strScript);
}

上一页  [1] [2] 


[Web开发]XML与HTML在语法上的主要区别详解  [系统软件]如何让Expat支持中文XML
[VB.NET程序]vb.net 与 XML 的操作  [VB.NET程序]vb.net读写xml(2)--实现datagrid与xml的沟通(原创…
[VB.NET程序]vb.net 读写xml方法(1)  [VB.NET程序][VB.NET+XML]完成简单程序配置
[VB.NET程序]使用Visual Basic操纵XML文档  [VB.NET程序]XML 简单接口 (SAX2)用Visual Basic 实现的示例
[Delphi程序]Delphi 6 XML映象工具  [Delphi程序]Delphi 6 XML数据绑定
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台