首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

动态菜单有关问题

2012-07-27 
动态菜单问题以下菜单程序把DrawMouseMenu(MenuValue1,MenuValue2,MenuValue5)放在script中,按钮中只用r

动态菜单问题
以下菜单程序把DrawMouseMenu(MenuValue1,MenuValue2,MenuValue5);放在script中,按钮中只用"return ShowMouseMenu();"就可以弹出菜单,但我把DrawMouseMenu(MenuValue1,MenuValue2,MenuValue5);放到按钮的onclick就不行,我想实现点击不同按钮出来不同的菜单效果。
<input type="button" value="Oper2" Author="CaoZuo" onclick="javascript:DrawMouseMenu(MenuValue1,MenuValue2,MenuValue5);return ShowMouseMenu();">

另外,input 按钮必须放在script中,不然报MenuValue1等未定义,不知道为什么?

HTML code
<HTML><HEAD><META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"><TITLE>邮件菜单</TITLE><link rel="stylesheet"                   href="/zygl/css/style.css" type="text/css"><script language="javascript">    TableColor = "rgb(0,0,200)";TableColor = "rgb(14,117,124)";function DrawMouseMenu(){    DivH = 2;    oSelection = document.selection;    var HrStr;    HrStr  =  "<tr>";    HrStr +=  " <td align=\"center\" valign=\"middle\" height=\"2\">";    HrStr +=  "  <TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100\" height=\"2\">";    HrStr +=  "   <tr>";    HrStr +=  "    <td height=\"1\" bgcolor=\"buttonshadow\"><\/td>";    HrStr +=  "   <\/tr>";    HrStr +=  "   <tr>";    HrStr +=  "    <td height=\"1\" bgcolor=\"buttonhighlight\"><\/td>";    HrStr +=  "   <\/tr>";    HrStr +=  "  <\/TABLE>";    HrStr +=  " <\/td>";    HrStr +=  "<\/tr>";    var MenuStr1;    MenuStr1  = "<tr>";    MenuStr1 +="<td align=\"center\" valign=\"middle\" height=\"20\">";    MenuStr1 +=" <TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100\">";    MenuStr1 +="  <tr>";    MenuStr1 +="   <td valign=\"middle\" height=\"16\" class=\"Mout\" onMouseOver=\"this.className='Mover';\" onMouseOut=\"this.className='Mout';\" onclick=\"";    var MenuStr2 = "<\/td><\/tr><\/TABLE><\/td><\/tr>";    var MenuStr = "";     for (i = 0; i < arguments.length; i++)    {        MenuStr += MenuStr1 + arguments[i] + MenuStr2;        DivH += 20;    }      var DivStr1;    DivStr1  = "<DIV id=\"MouseMenu\" class=\"div1\" style=\"position:absolute; left:0px; top:0px; width=115;height=" + DivH + "; z-index:1; visibility:hidden;\">";    DivStr1 += " <TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"div2\">";    DivStr1 += "  <tr>";    DivStr1 += "   <td bgcolor=\"" + TableColor + "\" width=\"15\" valign=\"center\" align=\"center\" style=\"color:white;\" bgcolor=\"buttonface\">";    DivStr1 += "    <b>操<br>作</b>";    DivStr1 += "   <\/td>";    DivStr1 += "   <td bgcolor=\"buttonface\">";    DivStr1 += "    <TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";    var DivStr2;    DivStr2  = "    <\/TABLE>";    DivStr2 += "   <\/td>";    DivStr2 += "  <\/tr>";    DivStr2 += " <\/TABLE>";    DivStr2 += "<\/DIV>";        document.write(DivStr1 + MenuStr + DivStr2);    document.body.onscroll = new Function("return HideMouseMenu();");    document.body.onselectstart = new Function("return HideMouseMenu();");    document.body.onmove = new Function("return HideMouseMenu();");    document.body.onresize = new Function("return HideMouseMenu();");    window.onresizestart = new Function("return HideMouseMenu();");}function document.onclick() //任意点击时关闭该控件{  with(window.event.srcElement)  {    if (getAttribute("Author") == null || tagName != "INPUT")      return HideMouseMenu();  }}function HideMouseMenu(){    for (i = 0; i < document.all.tags("select").length; i++)    {        document.all.tags("select")[i].style.visibility = "";    }    MouseMenu.style.visibility = "hidden";}function ShowMouseMenu(){    if (MouseMenu.style.visibility == "visible")    {        MouseMenu.style.visibility = 'hidden';    }        if (event.srcElement.tagName == "INPUT" )    {        for (i = 0; i < document.all.tags("select").length; i++)        {            document.all.tags("select")[i].style.visibility = "hidden";        }        if (event.clientX + 150 > document.body.clientWidth)        {            MouseMenu.style.left = event.clientX + document.body.scrollLeft - 150;        }        else        {            MouseMenu.style.left = event.clientX + document.body.scrollLeft;        }        if (event.clientY + DivH > document.body.clientHeight)        {            MouseMenu.style.top = event.clientY + document.body.scrollTop - DivH;        }        else        {            MouseMenu.style.top = event.clientY + document.body.scrollTop;        }        MouseMenu.style.visibility = "visible";    }    return false;    //边界,设定菜单覆盖的范围    var leftX = 100, rightX = 200, topY = 100, bottomY = 300;    function calculateSumOffset(idItem, offsetName)    {        var totalOffset = 0;        var item = eval('idItem');        do        {            totalOffset += eval('item.' + offsetName);            item = eval('item.offsetParent');        }        while (item != null);        return totalOffset;    }    function hideElement(elmID)    {        for (i = 0; i < document.all.tags(elmID).length; i++)        {            obj = document.all.tags(elmID)[i];            if (!obj || !obj.offsetParent)                continue;            objLeft = calculateSumOffset(obj, 'offsetLeft');            objTop = calculateSumOffset(obj, 'offsetTop');            if (leftX > (objLeft + obj.offsetWidth) || rightX < objLeft);            else if (topY > (objTop + obj.offsetHeight) || bottomY < objTop);            else                obj.style.visibility = "hidden";        }    }    hideElement("SELECT");    hideElement("OBJECT");}</script></HEAD><BODY>             <br><script language="javascript">    var MenuValue1 = "javascript:top.document.frames.nbw_v6_iframe.location.href='/zygl/onlinenumber/exitsystem.asp';\"><img src=\"/zygl/images/relogin.gif\"  border=\"0\" WIDTH=\"12\" HEIGHT=\"12\" BORDER=\"0\" HSPACE=\"0\" VSPACE=\"0\" ALIGN=\"absmiddle\">重新登陆"    var MenuValue2 = "this.style.behavior='url(#default#homepage)';this.setHomePage('http://84.25.14.41');\"><IMG SRC=\"/zygl/images/home1.gif\" WIDTH=\"12\" HEIGHT=\"12\" BORDER=\"0\" HSPACE=\"0\" VSPACE=\"0\" ALIGN=\"absmiddle\">设为首页"    var MenuValue3 = "javascript:shortcut();\"><img src=\"/zygl/images/desktoplnk.gif\"  border=\"0\" WIDTH=\"12\" HEIGHT=\"12\" BORDER=\"0\" HSPACE=\"0\" VSPACE=\"0\" ALIGN=\"absmiddle\">桌面快捷"  var MenuValue4 = "javascript:copyrightdeclare();\"><font style=\"color:red;font-size:16px;\">&copy;</font>版权声明"  var MenuValue5 = "javascript:alert(document.lastModified);\"><img src=\"/zygl/images/lastnew.gif\"  border=\"0\" WIDTH=\"12\" HEIGHT=\"12\" BORDER=\"0\" HSPACE=\"0\" VSPACE=\"0\" ALIGN=\"absmiddle\">最后更新";  document.write("<input type=\"button\" value=\"Oper\" Author=\"CaoZuo\" onclick=\"javascript:DrawMouseMenu(MenuValue1,MenuValue2,MenuValue3,MenuValue4,MenuValue5);return ShowMouseMenu();\">");</script><input type="button" value="Oper2" Author="CaoZuo" onclick="javascript:DrawMouseMenu(MenuValue1,MenuValue2,MenuValue5);return ShowMouseMenu();"><P>&nbsp;saasasa</P></BODY></HTML> 



[解决办法]
探讨

但onclick="javascript:ShowMouseMenu();DrawMouseMenu('a','b','c');"
这样反了,我需要先传递菜单的具体要素,然后再出现菜单才行。

热点排行