javascript鼠标右击事件

本文介绍如何在HTML中禁用浏览器默认的右键菜单,并通过监听mouseup事件实现自定义的鼠标右键功能。代码示例展示了如何在div元素上阻止默认的contextmenu事件,并检查鼠标按钮来识别右键点击。

1、屏蔽浏览器自带的默认弹出上下文菜单的contextmenu事件。

2、使用mouseup或者mousedown事件监控鼠标的右键,就可以形成鼠标右击的事件。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>鼠标右键单击事件</title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <style>
            .model{
                width: 100px;
                height: 100px;
                background: #f00;
                display: none;
            }
        </style>
    </head>
    <body>
       <div id='btn1'>
           <span>右键</span>
           <div class="model">弹出框</div>
       </div>
       <script type="text/javascript">
       //阻止元素上本身的右键contextmenu事件
        document.getElementById('btn1').oncontextmenu=function(){return false}
        document.getElementById('btn1').onmouseup=function(e){
            if(e.button === 2){
                console.log("右键点击"); 
            }
        }
       </script>
    </body>
</html>

 

根目录 菜单一 菜单二 go 修改 删除 function showMenu(id){ menuForm.id.value = id; if("" == id){ } else{ popMenu(itemMenu,100,"111"); } event.returnValue=false; event.cancelBubble=true; return false; } /** *显示弹出菜单 *menuDiv:右键菜单的内容 *width:行显示的宽度 *rowControlString:行控制字符串,0表示不显示,1表示显示,如“101”,则表示第1、3行显示,第2行不显示 */ function popMenu(menuDiv,width,rowControlString){ //创建弹出菜单 var pop=window.createPopup(); //设置弹出菜单的内容 pop.document.body.innerHTML=menuDiv.innerHTML; var rowObjs=pop.document.body.all[0].rows; //获得弹出菜单的行数 var rowCount=rowObjs.length; //循环设置每行的属性 for(var i=0;i<rowObjs.length;i++) { //如果设置该行不显示,则行数减一 var hide=rowControlString.charAt(i)!='1'; if(hide){ rowCount--; } //设置是否显示该行 rowObjs[i].style.display=(hide)?"none":""; //设置鼠标滑入该行时的效果 rowObjs[i].cells[0].onmouseover=function(){ this.style.background="#818181"; this.style.color="white"; } //设置鼠标滑出该行时的效果 rowObjs[i].cells[0].onmouseout=function(){ this.style.background="#cccccc"; this.style.color="black"; } } //屏蔽菜单的菜单 pop.document.oncontextmenu=function(){ return false; } //选择右键菜单的一项后,菜单隐藏 pop.document.onclick=function(){ pop.hide(); } //显示菜单 pop.show(event.clientX-1,event.clientY,width,rowCount*25,document.body); return true; } function create(){ alert("create" + menuForm.id.value + "!"); } function update(){ alert("update" + menuForm.id.value + "!"); } function del(){ alert("delete" + menuForm.id.value + "!"); } function clickMenu(){ alert("you click a menu!"); }
### 鼠标右键点击事件处理方法 在现代 Web 开发中,可以通过多种方式捕获并响应鼠标右键点击事件。以下是针对不同场景下的实现方案。 #### 使用原生 JavaScript 处理右键点击事件 通过 `addEventListener` 或者直接绑定事件处理器到目标 DOM 元素上,可以轻松捕捉用户的右键操作: ```javascript document.getElementById('targetElement').addEventListener('contextmenu', function(event) { event.preventDefault(); // 取消默认的浏览器上下文菜单行为 console.log('Right click detected at:', event.clientX, event.clientY); }); ``` 此代码片段展示了如何阻止默认的上下文菜单显示,并记录鼠标的坐标位置[^1]。 #### 在 Vue.js 中实现右键点击事件 Vue 提供了一种简洁的方式来监听自定义事件——即使用修饰符 `.contextmenu` 来绑定特定的行为逻辑。下面是一段完整的示例代码展示如何在组件内部管理这一功能: ```vue <template> <div @contextmenu="handleContextMenu"> Right-click me! </div> </template> <script> export default { methods: { handleContextMenu(event) { event.preventDefault(); alert(`You've triggered a custom action via right mouse button! X:${event.pageX}, Y:${event.pageY}`); } } } </script> ``` 上述模板中的 `@contextmenu` 是 Vue 对标准 HTML 属性的一个封装形式,它允许开发者更方便地接入业务需求逻辑而无需手动调整底层细节[^2]。 #### 禁止鼠标右键的功能扩展 如果项目中有特殊的安全或者交互设计考量,则可能还需要全局禁用页面上的所有右键动作。这通常适用于防止用户查看源码或下载资源等情况。例如,在整个文档加载完成后执行如下脚本即可达到目的: ```javascript window.onload = () => { document.body.oncontextmenu = (e) => { e.preventDefault(); }; }; ``` 值得注意的是,这种做法虽然简单有效,但也可能会降低用户体验,因此建议仅限于必要场合下采用。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值