zoukankan      html  css  js  c++  java
  • 自定义IE右键菜单

    类似SOHU图吧右键菜单的功能,使用JavaScript实现。下面是代码:


    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>自定义鼠标右键弹出式菜单</title>
    <style type="text/css">
    <!--
    .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;}
    .MouseOver {background
    -color:highlight;color:highlighttext;font-size: 12px;cursor:hand;font-size: 12px;}
    .MouseOut {background
    -color:buttonface;color:buttontext;font-size: 12px;cursor:default;font-size: 12px;}
    -->
    </style>
    <script language="javascript">
    //弹出菜单
    function PopupMouseRightButtonUpMenu()
    {
    //显示菜单
     if(MouseMenu.style.visibility=='visible') MouseMenu.style.visibility='hidden';
    //如果是链接、文本区或输入框,则显示IE菜单
     if (event.srcElement.tagName=='A' || event.srcElement.tagName=='TEXTAREA' || event.srcElement.tagName=='INPUT' || document.selection.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';
        }
    //禁止IE菜单
    return false;
    }
    //画出菜单,但不显示
    function DrawMouseRightButtonUpMenu(){
    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 MenuItemStr1='<tr><td align=\"center\" valign=\"middle\" height=\"20\"><TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"132\"><tr><td valign=\"middle\" height=\"16\" class=\"MouseOut\" onMouseOver=\"this.className=\'MouseOver\'\" onMouseOut=\"this.className=\'MouseOut\'\" onclick=\"'
    var MenuItemStr2=
    "<\/td><\/tr><\/TABLE><\/td><\/tr>";
    var historyMenu=['window.history.back()\
    ">后退','window.history.forward()\">前进'];
    var SysMenu=['\
    ">查找 <INPUT TYPE=\"text\" Size=\"10\" onkeypress=\"if (event.keyCode == 13) {MouseMenu.style.visibility=\'hidden\';var temp = this.value; this.value = \'\';return findInPage(temp)}\";\'>',
                 'document.execCommand(\'SelectAll\')\
    ">全选',
                 'MouseMenu.style.visibility=\'hidden\';document.execCommand(\'SaveAs\',\'true\')\
    ">另存为 ',
                 'location.replace(\'view
    -source:\'+location.href)\">查看源文件',
                 'MouseMenu.style.visibility=\'hidden\';window.print()\
    ">打印',
                 'window.location.reload()\
    ">刷新'];

    var MenuStr='';
    for(i=0;i<historyMenu.length;i++)
       {
        MenuStr+=MenuItemStr1+historyMenu[i]+MenuItemStr2;
        DivH+=20;
       }
    MenuStr+=HrStr;
    for(i=0;i<arguments.length;i++)
       {
        MenuStr+=MenuItemStr1+arguments[i]+MenuItemStr2;
        DivH+=20;
       }

    if(arguments.length>0)
      {
       MenuStr+=HrStr;
       DivH+=2;
      }

    for(i=0;i<SysMenu.length;i++)
       {
        MenuStr+=MenuItemStr1+SysMenu[i]+MenuItemStr2;
        DivH+=20;
       }

    var aboutMenu=['MouseMenu.style.visibility=\'hidden\';alert(\'http:\/\/www.playyuer.com\\nmailto:playyuer@263.net\')
    ">关于 ']
    MenuStr
    +=HrStr;
    for(i=0;i<aboutMenu.length;i++)
       {
        MenuStr
    +=MenuItemStr1+aboutMenu[i]+MenuItemStr2;
        DivH
    +=20;
       }

    var MenuTop = '<DIV id=\"MouseMenu\" class=\"div1\" style=\"position:absolute; left:0px; top:0px; width=150;height='+DivH+'; z-index:1; visibility:hidden;\">\n' +
                 '
    <TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"div2\">\n' +
                 '
    <tr>\n' +
                 '
    <td bgcolor=\"' + MenuBarColor+ '\" width=\"50\" valign=\"bottom\" align=\"center\"  bgcolor=\"buttonface\">\n' +
                 '
    <\/td>\n'+ 
                 '
    <td bgcolor=\"buttonface\">\n'+ 
                 '
    <TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\">';
    var MenuBottom = '<\/TABLE><\/td><\/tr><\/TABLE><\/DIV>';
    document.write(MenuTop
    +MenuStr+MenuBottom);
    //prompt('aa',MenuTop+MenuStr+MenuBottom)
    document.body.oncontextmenu=new Function('return PopupMouseRightButtonUpMenu();');
    document.body.onclick
    =new Function('if(event.srcElement.tagName !=\'INPUT\') 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 NS4 = (document.layers);
    var IE4 = (document.all);
    var win = window;
    var n = 0;
    //查找字符串
    function findInPage(str) {
      
    var txt, i, found;
      
    if (str == '')
        
    return false;
      
    if (NS4) {
        
    if (!win.find(str))
          
    while(win.find(str, falsetrue))
            n
    ++;
        
    else
          n
    ++;
        
    if (n == 0)
          alert('文档搜索完毕。');
      }
      
    if (IE4) {
        txt 
    = win.document.body.createTextRange();
        
    for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
          txt.moveStart('character', 
    1);
          txt.moveEnd('textedit');
        }
        
    if (found) {
          txt.moveStart('character', 
    -1);
          txt.findText(str);
          txt.select();
          txt.scrollIntoView();
          n
    ++;
        }
        
    else {
          
    if (n > 0) {
            n 
    = 0;
            findInPage(str);
          }
          
    else
            alert('文档搜索完毕。');
        }
      }
      
    return false;
    }
    </script>
    </head>
    <body>
    自定义鼠标右键弹出式菜单
    <a href=http://hsxixi.cnblogs.com>坐看云起Blog</a>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var MenuBarColor ='#6600FF';
    DrawMouseRightButtonUpMenu();
    //-->
    </SCRIPT>
    </body>
    </html>


     

  • 相关阅读:
    【BZOJ2806】【CTSC2012】—熟悉的文章(二分答案+广义后缀自动机+单调队列优化dp)
    2017-2-15
    2017-2-14
    2017-2-13
    CSS居中
    2017-2-10
    微信小程序
    2017-2-9
    2017-2-8
    基础知识再整理: 01
  • 原文地址:https://www.cnblogs.com/hsxixi/p/242159.html
Copyright © 2011-2022 走看看