鼠标右键兼容MAC版火狐浏览器

oncontextmenu事件 在MAC版火狐浏览器下表现差异

谷歌和其它浏览器
//css
    *{margin:0;padding:0;}
    #right-menu{position:absolute;width:150px;visibility:hidden;border:1px solid #bababa;box-shadow: 1px 1px 2px #8e8e8e;}
    #right-menu li{list-style:none;text-indent:1em;}
    #right-menu li a{display:block;height:30px;line-height:30px;text-decoration:none;color:#666;font-size: 12px;}
    #right-menu li a:hover{background:#ebebeb;color:black;}

//html
<div id="right-menu">
    <ul>
        <li><a href="#">打印</a></li>
        <li><a href="#">复制</a></li>
    </ul>
</div>

//js
document.oncontextmenu = function(e){
    if(window.event) e = window.event;
    var mymenu = document.getElementById("right-menu");
    mymenu.style.visibility = "visible";
    mymenu.style.left = e.clientX + 5 +"px";
    mymenu.style.top = e.clientY + 5 + "px";
    return false;//阻止右键系统默认的弹出框
};
document.onclick = function(){
    var mymenu = document.getElementById("right-menu");
    mymenu.style.visibility = "hidden"; 
}
//除了火狐,oncontextmenu在其他浏览器上的交互 右键mouseup 执行事件
//火狐是mousedown的时候执行 抬起消失
兼容写法
document.oncontextmenu = function(e){
    return false;
};
document.onmouseup=function(e) {
    var mymenu = document.getElementById("right-menu");
    if (!e) e=window.event;
    if (e.button==0) {
        mymenu.style.visibility = "hidden"; 
    }
    if (e.button==2) {
        mymenu.style.visibility = "visible";
        mymenu.style.left = e.clientX + 5 +"px";
        mymenu.style.top = e.clientY + 5 + "px";
    }
}

//思路 
1.阻止默认事件
2.mouseup 右键展示重写菜单 左键隐藏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值