zoukankan      html  css  js  c++  java
  • js鼠标右键菜单

    效果如下:

    代码如下:

      1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      2 <html>
      3 <meta charset="utf-8" />
      4 <head>
      5 <title>鼠标右键处理</title>
      6 <style>
      7 *{
      8     margin:0;padding:0;
      9 }
     10 a{
     11     text-decoration:none;
     12 }
     13 #oncontextmenu-content{
     14     display:none;
     15     border:1px solid #aaa;
     16     background:#ccc;
     17     position:absolute;
     18     100px;
     19     padding:5px;
     20 }
     21 #oncontextmenu-content p{
     22     text-align:left;
     23     height:20px;
     24     border:0px solid #aaa;
     25 }
     26 #oncontextmenu-content p.line{
     27     border-bottom:1px solid #aaa;
     28 }
     29 #oncontextmenu-content p a{
     30     color:#111;
     31     font:12px "宋体";
     32     line-height:20px;
     33     display:block;
     34 }
     35 #oncontextmenu-content p a:hover{
     36     color:#eee;
     37     background:#aaa;
     38 }
     39 .content{
     40     position:absolute;
     41 }
     42 #text-show{
     43     left:0px;
     44     top:210px;
     45     border:1px solid #111;
     46     500px;
     47 }
     48 #text-hidden{
     49     left:0px;
     50     top:0px;
     51     opacity:0.001;
     52     filter:alpha(opacity=0);
     53     100%;
     54     height:100%;
     55     background:#333;
     56 }
     57 </style>
     58 </head>
     59 <body>
     60 <table cellpadding="0" cellspacing="0" border="1">
     61 <tr>
     62     <td id="click">请分别用 右键 合点这里测试</td>
     63 </tr>
     64 <tr>
     65     <td>这个表格没有处理,点这里没反应</td>
     66 </tr>
     67 </table>
     68 <div id="oncontextmenu-content">
     69     <p><a href="javascript:">aaa</a></p>
     70     <p class="line"><a href="javascript:">bbb</a></p>
     71     <p><a href="javascript:">ccc</a></p>
     72     <p><a href="javascript:">ddd</a></p>
     73     <p><a href="javascript:">eee</a></p>
     74 </div>
     75 <script type="text/javascript">
     76 function $(d){
     77     this.obj = document.getElementById(d);
     78     return this.obj;
     79 }
     80 function addEvent(obj,type,fun){
     81     if(obj.addEventListener){
     82         obj.addEventListener(type,fun);
     83         return true;
     84     }else if(obj.attachEvent){
     85         return obj.attachEvent("on"+type, function(){
     86             fun.apply(obj,arguments);
     87         });
     88     }else{
     89         return false;
     90     };
     91 }
     92 
     93 var keys = {
     94     "Netscape" : {
     95         left:0,    //
     96         right:[2], //
     97         center:1   //
     98     },
     99     "Microsoft Internet Explorer" : {
    100         left:1,      //
    101         right:[0,2], //
    102         center:4,    //
    103         leftAndRight:3  //左&右
    104     },
    105     "Opera" : {
    106         left:0,    //
    107         right:[2]  //
    108     }
    109 };
    110 addEvent( $('click'), 'mousedown', function(e){
    111     var event = e || event;
    112     var appname = navigator.appName;
    113     //alert( event.button )
    114     //alert( keys[appname].right )
    115     if(  keys[appname].right[0] == event.button || keys[appname].right[1] == event.button ){
    116         //alert('右键');
    117         this.oncontextmenu = function(){ return false};
    118         var contextStyle = $('oncontextmenu-content').style;
    119         //alert(event.pageY +'/'+event.offsetTop+'/'+event.offsetY )
    120         var left = event.pageX || event.offsetX;
    121         var top = event.pageY || event.offsetY;
    122         contextStyle.display = 'block';
    123         contextStyle.left = left + 5;
    124         contextStyle.top = top + 5;
    125     }
    126     else if( keys[appname].left == event.button ){
    127         alert('左键');
    128     }
    129 });
    130 addEvent( $('oncontextmenu-content'), 'mouseover', function(e){
    131     this.style.display = 'block';
    132 });
    133 addEvent( $('oncontextmenu-content'), 'mouseout', function(e){
    134     this.style.display = 'none';
    135 });
    136 addEvent( $('oncontextmenu-content'), 'mouseup', function(e){
    137     var event = e || event;
    138     var appname = navigator.appName;
    139     if(  keys[appname].right[0] == event.button || keys[appname].right[1] == event.button ){
    140         this.oncontextmenu = function(){ return false};
    141         return false;
    142     }
    143     else{
    144         alert(1)
    145     }
    146 });
    147 </script>
    148 </body>
    149 </html>
  • 相关阅读:
    poj2263
    poj2304
    低调是态度,也是智慧
    股票操作記錄2
    治病記錄(2013年)
    过年了
    治病記錄
    近段時間學習記錄
    新的一年
    關于設計
  • 原文地址:https://www.cnblogs.com/whatmiss/p/2629672.html
Copyright © 2011-2022 走看看