<HTML>
<HEAD>
  <TITLE>右键菜单</TITLE>
  <style type="text/css">
  <!--
  body           {font-size: 9pt;}
  table          {font-size: 9pt; cursor: default; margin: 0;}
  tr             {height: 20;}
  tr.over        {font-size: 9pt; color: #ffffff; background-color: #66aadd; cursor: default;}
  tr.out         {font-size: 9pt; color: #ffffff; background-color: #336699; cursor: default;}
  div.rm_div     {position: absolute; filter: Alpha(Opacity='95'); display: none; border: 2px outset #3377aa; background-color: #336699; width: 0; height: 0;}
  hr.sperator    {border: 1px inset #3377aa;}
  -->
  </style>
  <script language="JScript">
  <!--
  function RightMenu()
  {
    this.AddExtendMenu=AddExtendMenu;
    this.AddItem=AddItem;
    this.GetMenu=GetMenu;
    this.HideAll=HideAll;
    this.I_OnMouseOver=I_OnMouseOver;
    this.I_OnMouseOut=I_OnMouseOut;
    this.I_OnMouseUp=I_OnMouseUp;
    this.P_OnMouseOver=P_OnMouseOver;
    this.P_OnMouseOut=P_OnMouseOut;
    A_rbpm = new Array();
    HTMLstr  = "";
    HTMLstr += "<!-- RightButton PopMenu -->\n";
    HTMLstr += "\n";
    HTMLstr += "<!-- PopMenu Starts -->\n";
    HTMLstr += "<div id='E_rbpm' class='rm_div'>\n";
                        // rbpm = right button pop menu
    HTMLstr += "<table width='100%' border='0' cellspacing='0'>\n";
    HTMLstr += "<!-- Insert A Extend Menu or Item On Here For E_rbpm -->\n";
    HTMLstr += "</table>\n";
    HTMLstr += "</div>\n";
    HTMLstr += "<!-- Insert A Extend_Menu Area on Here For E_rbpm -->";
    HTMLstr += "\n";
    HTMLstr += "<!-- PopMenu Ends -->\n";
  }
  function AddExtendMenu(id,name,parent)
  {
    var TempStr = "";
    if(HTMLstr.indexOf("<!-- Extend Menu Area : E_"+id+" -->") != -1)
    {
      alert("E_"+id+"already exist!");
      return;
    }
    eval("A_"+parent+".length++");
    eval("A_"+parent+"[A_"+parent+".length-1] = id");  // 将此项注册到父菜单项的ID数组中去
    TempStr += "<!-- Extend Menu Area : E_"+id+" -->\n";
    TempStr += "<div id='E_"+id+"' class='rm_div'>\n";
    TempStr += "<table width='100%' border='0' cellspacing='0'>\n";
    TempStr += "<!-- Insert A Extend Menu or Item On Here For E_"+id+" -->";
    TempStr += "</table>\n";
    TempStr += "</div>\n";
    TempStr += "<!-- Insert A Extend_Menu Area on Here For E_"+id+" -->";
    TempStr += "<!-- Insert A Extend_Menu Area on Here For E_"+parent+" -->";
    HTMLstr = HTMLstr.replace("<!-- Insert A Extend_Menu Area on Here For E_"+parent+" -->",TempStr);    
    eval("A_"+id+" = new Array()");
    TempStr  = "";
    TempStr += "<!-- Extend Item : P_"+id+" -->\n";
    TempStr += "<tr id='P_"+id+"' class='out'";
    TempStr += " onmouseover='P_OnMouseOver(\""+id+"\",\""+parent+"\")'";
    TempStr += " onmouseout='P_OnMouseOut(\""+id+"\",\""+parent+"\")'";
    TempStr += " onmouseup=window.event.cancelBubble=true;";
    TempStr += " onclick=window.event.cancelBubble=true;";
    TempStr += "><td nowrap>";
    TempStr += "&nbsp;&nbsp;&nbsp;"+name+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td style='font-family: webdings; text-align: right;'>4";
    TempStr += "</td></tr>\n";
    TempStr += "<!-- Insert A Extend Menu or Item On Here For E_"+parent+" -->";
    HTMLstr = HTMLstr.replace("<!-- Insert A Extend Menu or Item On Here For E_"+parent+" -->",TempStr);
  }
  function AddItem(id,name,parent,location)
  {
    var TempStr = "";
    var ItemStr = "<!-- ITEM : I_"+id+" -->";
    if(id == "sperator")
    {
      TempStr += ItemStr+"\n";
      TempStr += "<tr style='height: 3;' class='out' onclick='window.event.cancelBubble=true;' onmouseup='window.event.cancelBubble=true;'><td colspan='2'><hr class='sperator'></td></tr>";
      TempStr += "<!-- Insert A Extend Menu or Item On Here For E_"+parent+" -->";
      HTMLstr = HTMLstr.replace("<!-- Insert A Extend Menu or Item On Here For E_"+parent+" -->",TempStr);
      return;
    }
    if(HTMLstr.indexOf(ItemStr) != -1)
    {
      alert("I_"+id+"already exist!");
      return;
    }
    TempStr += ItemStr+"\n";
    TempStr += "<tr id='I_"+id+"' class='out'";
    TempStr += " onmouseover='I_OnMouseOver(\""+id+"\",\""+parent+"\")'";
    TempStr += " onmouseout='I_OnMouseOut(\""+id+"\")'";
    TempStr += " onclick='window.event.cancelBubble=true;'";
    if(location == null)
      TempStr += " onmouseup='I_OnMouseUp(\""+id+"\",\""+parent+"\",null)'";
    else
      TempStr += " onmouseup='I_OnMouseUp(\""+id+"\",\""+parent+"\",\""+location+"\")'";
    TempStr += "><td nowrap>";
    TempStr += "&nbsp;&nbsp;&nbsp;"+name+"&nbsp;&nbsp;&nbsp;";
    TempStr += "</td><td></td></tr>\n";
    TempStr += "<!-- Insert A Extend Menu or Item On Here For E_"+parent+" -->";
    HTMLstr = HTMLstr.replace("<!-- Insert A Extend Menu or Item On Here For E_"+parent+" -->",TempStr);
  }
  function GetMenu()
  {
    return HTMLstr;
  }
  function I_OnMouseOver(id,parent)
  {
    var Item;
    if(parent != "rbpm")
    {
      var ParentItem;
      ParentItem = eval("P_"+parent);
      ParentItem.className="over";
    }
    Item = eval("I_"+id);
    Item.className="over";
    HideAll(parent,1);
  }
  function I_OnMouseOut(id)
  {
    var Item;
    Item = eval("I_"+id);
    Item.className="out";
  }
  function I_OnMouseUp(id,parent,location)
  {
    var ParentMenu;
    window.event.cancelBubble=true;
    OnClick();
    ParentMenu = eval("E_"+parent);
    ParentMenu.display="none";
    if(location == null)
      eval("Do_"+id+"()");
    else
      window.open(location);
  }

解决方案 »

  1.   


      function P_OnMouseOver(id,parent)
      {
        var Item;
        var Extend;
        var Parent;
        if(parent != "rbpm")
        {
          var ParentItem;
          ParentItem = eval("P_"+parent);
          ParentItem.className="over";
        }
        HideAll(parent,1);
        Item = eval("P_"+id);
        Extend = eval("E_"+id);
        Parent = eval("E_"+parent);
        Item.className="over";
        Extend.style.display="block";
        Extend.style.posLeft=document.body.scrollLeft+Parent.offsetLeft+Parent.offsetWidth-4;
        if(Extend.style.posLeft+Extend.offsetWidth > document.body.scrollLeft+document.body.clientWidth)
            Extend.style.posLeft=Extend.style.posLeft-Parent.offsetWidth-Extend.offsetWidth+8;
        if(Extend.style.posLeft < 0) Extend.style.posLeft=document.body.scrollLeft+Parent.offsetLeft+Parent.offsetWidth;
        Extend.style.posTop=Parent.offsetTop+Item.offsetTop;
        if(Extend.style.posTop+Extend.offsetHeight > document.body.scrollTop+document.body.clientHeight)
          Extend.style.posTop=document.body.scrollTop+document.body.clientHeight-Extend.offsetHeight;
        if(Extend.style.posTop < 0) Extend.style.posTop=0;
      }
      function P_OnMouseOut(id,parent)
      {
      }
      function HideAll(id,flag)
      {
        var Area;
        var Temp;
        var i;
        if(!flag)
        {
          Temp = eval("E_"+id);
          Temp.style.display="none";
        }
        Area = eval("A_"+id);
        if(Area.length)
        {
          for(i=0; i < Area.length; i++)
          {
            HideAll(Area[i],0);
            Temp = eval("E_"+Area[i]);
            Temp.style.display="none";
            Temp = eval("P_"+Area[i]);
            Temp.className="out";
          }
        }
      }  document.onmouseup=OnMouseUp;
      document.onclick=OnClick;
      function OnMouseUp()
      {
        if(window.event.button == 2)
        {
          var PopMenu;
          PopMenu = eval("E_rbpm");
          HideAll("rbpm",0);
          PopMenu.style.display="block";
          PopMenu.style.posLeft=document.body.scrollLeft+window.event.clientX;
          PopMenu.style.posTop=document.body.scrollTop+window.event.clientY;
          if(PopMenu.style.posLeft+PopMenu.offsetWidth > document.body.scrollLeft+document.body.clientWidth)
            PopMenu.style.posLeft=document.body.scrollLeft+document.body.clientWidth-PopMenu.offsetWidth;
          if(PopMenu.style.posLeft < 0) PopMenu.style.posLeft=0;
          if(PopMenu.style.posTop+PopMenu.offsetHeight > document.body.scrollTop+document.body.clientHeight)
            PopMenu.style.posTop=document.body.scrollTop+document.body.clientHeight-PopMenu.offsetHeight;
          if(PopMenu.style.posTop < 0) PopMenu.style.posTop=0;
        }
      }
      function OnClick()
      {
        HideAll("rbpm",0);
      }
      // Add Your Function on following
      function Do_viewcode(){window.location="view-source:"+window.location.href;}
      function Do_help(){window.showHelp(window.location);}
      function Do_exit() {window.close();}
      function Do_refresh() {window.location.reload();}
      function Do_back() {history.back();}
      function Do_forward() {history.forward();}
      function Do_author(){alert("姓名:杨俊\n网名:风舞影天(Snwcwt)\nE_mail:[email protected]\n个人主页:http://202.115.147.160/snwcwt(正在制作中)\n")}
      -->
      </script>
    </HEAD>
      

  2.   

    <BODY oncontextmenu=window.event.returnValue=false>
    <div id='snwcwt'>&nbsp;</div>
      <script language="JScript">
      <!--
      var menu = new RightMenu();
      menu.AddExtendMenu("location","我的链接","rbpm");
        menu.AddExtendMenu("lscit","四川工业学院校园网","location");
          menu.AddItem("scit_scit","川工首页","lscit","http://www.scit.edu.cn");
          menu.AddItem("scit_lib","川工图书馆","lscit","http://202.115.151.46");
          menu.AddItem("sperator","","lscit",null);
          menu.AddItem("scit_century","世纪学苑","lscit","http://202.115.148.230/");
          menu.AddItem("scit_the5","第五空间","lscit","http://the5.scit.edu.cn/");
          menu.AddItem("scit_lianyi","联谊网站","lscit","http://202.115.148.240");
          menu.AddItem("scit_message","信息导报","lscit","http://202.115.151.114/xx");
          menu.AddItem("scit_student","书生之家川工境象","lscit","http://202.115.151.100");
          menu.AddItem("sperator","","lscit",null);
          menu.AddItem("scit_bbs","川工BBS","lscit","http://202.115.144.32");
          menu.AddItem("scit_cbbs","世纪学苑BBS","lscit","http://202.115.144.37");
        menu.AddExtendMenu("stunet","学生网站","location");
          menu.AddItem("stu_century","世纪学苑","stunet","http://202.115.148.230/");
          menu.AddItem("stu_wjl","望江楼","stunet","http://wjl.scu.edu.cn");
          menu.AddItem("stu_freedim","自由天地","stunet","http://www.freedim.net/");
          menu.AddItem("stu_stuhome","学生之家","stunet","http://www.stuhome.net");
          menu.AddItem("stu_rw","人文网","stunet","http://www.rw.uestc.edu.cn/");
          menu.AddItem("stu_the5","第五空间","stunet","http://the5.scit.edu.cn/");
          menu.AddItem("stu_flying","我心飞扬","stunet","http://flying.swpi.edu.cn/");
          menu.AddItem("stu_21cn","21CN校园网","stunet","http://www.21cn.edu.cn/");
          menu.AddItem("stu_yaguo","网虫乐园","stunet","http://www.yaguo.com/");
        menu.AddItem("sperator","","location",null);
        menu.AddExtendMenu("computer","电脑类网站","location");
          menu.AddExtendMenu("C_all","综合性网站","computer");
            menu.AddItem("ca_yesky","天极网","C_all","http://www.yesky.com");
          menu.AddExtendMenu("C_program","程序员网站","computer");
            menu.AddItem("cp_program","中国程序员网站","C_program","http://www.chinaprogrammer.com/");
            menu.AddItem("sperator","","C_program",null);
            menu.AddItem("cp_51js","无忧脚本","C_program","http://www.51js.com/");
            menu.AddItem("sperator","","C_program",null);
            menu.AddItem("cp_active","中国动感技术网络","C_program","http://www.chinaasp.com/active/");
            menu.AddItem("cp_aspcn","ASP中华网","C_program","http://www.aspcn.com/");
            menu.AddItem("cp_aspx","中国ASP联盟","C_program","http://www.chinaspx.com/");
          menu.AddExtendMenu("C_magzine","杂志网站","computer");
            menu.AddItem("cm_cpcw","电脑报","C_magzine","http://www.cpcw.com");
            menu.AddItem("cm_cfan","电脑爱好者","C_magzine","http://www.cfan.net.cn");
            menu.AddItem("cm_popsoft","大众软件","C_magzine","http://www.popsoft.com");
          menu.AddExtendMenu("C_luntan","技术性论坛","computer");
            menu.AddItem("cl_chinaasp","ChinaASP论坛","C_luntan","http://www.chinaasp.com/sqlbbs");
          menu.AddExtendMenu("C_book","书籍下载","computer");
            menu.AddItem("cb_huachu","华储网上书店","C_book","http://www.huachu.com.cn/");
        menu.AddExtendMenu("hacker","黑客天地","location");
          menu.AddItem("hk_honker","<font style='color: #ff0000;'>中国红客联盟</font>","hacker","http://www.cnhonker.com");
        menu.AddItem("sperator","","location",null);
        menu.AddExtendMenu("lmovie","影视天地","location");
          menu.AddItem("mov_wcums","华西网上影院","lmovie","http://202.115.100.8/");
        menu.AddExtendMenu("lmusic","音乐空间","location");
          menu.AddItem("mus_tyfo","天虎音乐网","lmusic","http://music.tyfo.com/");
          menu.AddItem("mus_langqin","浪琴音乐","lmusic","http://www.langqin.net/");
          menu.AddItem("mus_wcums","华西音乐空间","lmusic","http://music.wcums.edu.cn/");
        menu.AddExtendMenu("lmud","泥巴链接","location");
          menu.AddItem("lmud_mudking","泥巴大王","lmud","http://www.mudking.com");
          menu.AddItem("lmud_justmud","泥巴城堡","lmud","http://www.justmud.com");
          menu.AddItem("lmud_mudall","世界泥巴资源","lmud","http://www.mudall.com");
          menu.AddItem("lmud_yaguo","泥潭风云","lmud","http://202.114.98.14/mud/");
        menu.AddItem("sperator","","location",null);
        menu.AddExtendMenu("lemail","电子邮局","location");
          menu.AddItem("email_263","263免费电子邮局","lemail","http://freemail.263.net");
        menu.AddExtendMenu("collections","综合性网站","location");
          menu.AddItem("coll_chinaren","中国人网站","collections","http://www.chinaren.com/");
          menu.AddItem("coll_etang","亿唐网站","collections","http://www.etang.com/");
          menu.AddItem("coll_263","263首都在线","collections","http://www.263.net/");
      menu.AddExtendMenu("leave","离开","rbpm");
        menu.AddItem("forward","前进","leave",null);
        menu.AddItem("back","后退","leave",null);
        menu.AddItem("sperator","","leave",null);
        menu.AddItem("exit","退出","leave",null);
      menu.AddItem("viewcode","查看源代码","rbpm",null);
      menu.AddItem("refresh","刷新","rbpm",null);
      menu.AddItem("sperator","","rbpm",null);
      menu.AddItem("help","帮助","rbpm",null);
      menu.AddItem("sperator","","rbpm",null);
      menu.AddItem("author","<font style='color: #ff0000'>关于作者</font>","rbpm",null);
      document.writeln(menu.GetMenu());
      snwcwt.innerText=menu.GetMenu();
      -->
      </script>
    </BODY>
    </HTML>
      

  3.   

    <style type="text/css"><!--
    .p9 {font-size: 12px; line-height: 120%;}
    .title {font-size: 25px;}
    .div1 { border-top:buttonface 1px solid;border-left:buttonface 1px solid;border-bottom:windowframe 1px solid;border-right:windowframe 1px solid;}
    .div2 { border-top:window 1px solid;border-left:window 1px solid;border-bottom:buttonshadow 1px solid;border-right:buttonshadow 1px solid;}
    .Mover {background-color:highlight;color:highlighttext;font-size: 12px;cursor:default;font-size: 12px;}
    .Mout {background-color:buttonface;color:buttontext;font-size: 12px;cursor:default;font-size: 12px;}
    td {font-size: 14.9px; line-height: 1.3}
    body {font-size: 14.9px; line-height: 1.3}
    A {text-decoration: none;}
    A:hover {color: #FF0000; text-decoration: underline;}
    --></style>
    <script>
    function ShowMouseMenu(){
    if(MouseMenu.style.visibility=='visible')MouseMenu.style.visibility='hidden';
    if(event.srcElement.tagName=="IMG"&&event.srcElement.id!="menugif"||event.srcElement.tagName=="A"||event.srcElement.tagName=="TEXTAREA"||event.srcElement.tagName=="INPUT"||oSelection.type!="None")
    return true;
    else{
    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;
    }function DrawMouseMenu(){
    DivH=2;
    oSelection = document.selection;
    var HrStr="<tr><td align=center valign=middle height=2><TABLE border=0 cellpadding=0 cellspacing=0 width=128 height=2><tr><td height=1 bgcolor=buttonshadow><\/td><\/tr><tr><td height=1 bgcolor=buttonhighlight><\/td><\/tr><\/TABLE><\/td><\/tr>";
    var MenuStr1="<tr><td align=center valign=middle height=20><TABLE border=0 cellpadding=0 cellspacing=0 width=132><tr><td valign=middle height=16 class=Mout onMouseOver=this.className='Mover'; onMouseOut=this.className='Mout'; onclick=\"";
    var MenuStr2="<\/td><\/tr><\/TABLE><\/td><\/tr>";
    var XiciMenu=["window.history.back()\">后退","window.history.forward()\">前进"];
    var SysMenu=["document.execCommand('SelectAll')\">全选","MouseMenu.style.visibility='hidden';document.execCommand('SaveAs','true')\">另存为…","location.replace('view-source:'+location.href)\">查看源文件","window.print()\">打印","window.location.reload()\">刷新"];
    var MenuStr="";
    for(i=0;i<XiciMenu.length;i++){
    MenuStr+=MenuStr1+XiciMenu[i]+MenuStr2;
    DivH+=20;
    }
    MenuStr+=HrStr;
    for(i=0;i<arguments.length;i++){
    MenuStr+=MenuStr1+arguments[i]+MenuStr2;
    DivH+=20;
    }
    if(arguments.length>0){
    MenuStr+=HrStr;
    DivH+=2;
    }
    for(i=0;i<SysMenu.length;i++){
    MenuStr+=MenuStr1+SysMenu[i]+MenuStr2;
    DivH+=20;
    }
    var DivStr1="<DIV id=MouseMenu class=div1 style=\"position:absolute; left:0px; top:0px; width=150;height="+DivH+"; z-index:1; visibility:hidden;\"><TABLE border=0 cellpadding=0 cellspacing=0 class=div2><tr><td bgcolor="+TableColor+" width=10 valign=bottom align=center  bgcolor=buttonface><img id=menugif src=../images/menu.gif width=18 height=120><\/td>
    <td bgcolor=buttonface><TABLE border=0 cellpadding=0 cellspacing=0>";
    var DivStr2="<\/TABLE><\/td><\/tr><\/TABLE><\/DIV>";
    document.write(DivStr1+MenuStr+DivStr2);
    document.body.oncontextmenu=new Function("return ShowMouseMenu();");
    document.body.onclick=new Function("MouseMenu.style.visibility='hidden';");
    document.body.onscroll=new Function("MouseMenu.style.visibility='hidden';");
    document.body.onselectstart=new Function("MouseMenu.style.visibility='hidden';");
    window.onresizestart=new Function("MouseMenu.style.visibility='hidden';");
    }
    var ItemColor="#E0E0E0";TextColor="#000000";BdLevel=10;TableColor='#6699CC';TTextColor='#000000';TitleColor="#FF0000";DocId=44296988; 
    var Mobile_Number=0;Append=0;lTBdId=19095;
    DrawMouseMenu("window.location='http://www.163.com';\">go to 163!","alert('I am shyslysky!');\">about me!"); </script>