Javascript?、Vue禁止鼠標(biāo)右鍵點(diǎn)擊事件實(shí)例
工作中碰見(jiàn)了奇葩的需求(見(jiàn)多了,也就不奇葩了哈哈)—— 用戶讓加上鼠標(biāo)右鍵點(diǎn)擊事件
1、oncontextmenu 事件
定義 :oncontextmenu 事件在元素中用戶右擊鼠標(biāo)時(shí)觸發(fā)并打開(kāi)上下文菜單。
HTML :
<element oncontextmenu="myScript">
JavaScript :
object.oncontextmenu=function(){
myScript
};JavaScript 中, 使用 addEventListener() 方法:
object.addEventListener("contextmenu", myScript);注意: Internet Explorer 8 及更早 IE 瀏覽器版本不支持 addEventListener() 。
2、JS實(shí)例
添加右擊事件 阻止默認(rèn)行為—— oncontextmenu / contextmenu
document.addEventListener("oncontextmenu",function(evt){
console.log("右鍵單擊,自定義右鍵菜單")
evt.preventDefault()
})注意:所有瀏覽器都支持 oncontextmenu 事件, contextmenu 元素只有 Firefox 瀏覽器支持。

3、Vue實(shí)例
在 Vue.js 中,要實(shí)現(xiàn)右鍵點(diǎn)擊事件,可以使用 Vue 的 contextmenu 指令來(lái)監(jiān)聽(tīng)上下文菜單事件。這個(gè)指令會(huì)在用戶右鍵點(diǎn)擊元素時(shí)觸發(fā)。以下是一個(gè)示例:
HTML :
<div @contextmenu="showContextMenu" class="right-clickable">
Right-click me
<div v-if="contextMenuVisible" class="context-menu">
<!-- 右鍵菜單的內(nèi)容 -->
<ul>
<li @click="menuItemClicked('Option 1')">Option 1</li>
<li @click="menuItemClicked('Option 2')">Option 2</li>
<li @click="menuItemClicked('Option 3')">Option 3</li>
</ul>
</div>
</div>JavaScript :
export default {
data() {
return {
contextMenuVisible: false,
contextMenuPosition: { x: 0, y: 0 }
};
},
methods: {
showContextMenu(event) {
// 阻止默認(rèn)右鍵菜單
event.preventDefault();
// 獲取右鍵點(diǎn)擊的位置
this.contextMenuPosition.x = event.clientX;
this.contextMenuPosition.y = event.clientY;
// 顯示右鍵菜單
this.contextMenuVisible = true;
},
hideContextMenu() {
// 隱藏右鍵菜單
this.contextMenuVisible = false;
},
menuItemClicked(option) {
// 處理菜單選項(xiàng)點(diǎn)擊事件
console.log('Clicked:', option);
this.hideContextMenu();
}
},
mounted() {
// 監(jiān)聽(tīng)點(diǎn)擊頁(yè)面其他部分,以隱藏右鍵菜單
window.addEventListener('click', this.hideContextMenu);
},
beforeDestroy() {
// 移除監(jiān)聽(tīng)器,以防止內(nèi)存泄漏
window.removeEventListener('click', this.hideContextMenu);
}
};CSS:
.right-clickable {
position: relative;
}
.context-menu {
position: absolute;
background-color: #fff;
border: 1px solid #ccc;
padding: 5px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
z-index: 1000;
}
.context-menu ul {
list-style: none;
padding: 0;
margin: 0;
}
.context-menu li {
padding: 5px 10px;
cursor: pointer;
}這是一個(gè)簡(jiǎn)單的示例,展示了如何使用 contextmenu 指令來(lái)實(shí)現(xiàn)右鍵點(diǎn)擊事件和彈出自定義的右鍵菜單。在這個(gè)示例中,當(dāng)用戶右鍵點(diǎn)擊 "Right-click me" 文本時(shí),會(huì)顯示一個(gè)自定義的菜單。右鍵菜單將會(huì)在用戶點(diǎn)擊其他地方或選擇菜單項(xiàng)后隱藏。
運(yùn)行效果圖:

總結(jié)
到此這篇關(guān)于Javascript 、Vue禁止鼠標(biāo)右鍵點(diǎn)擊事件的文章就介紹到這了,更多相關(guān)Js Vue禁止鼠標(biāo)右鍵點(diǎn)擊事件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
前端JavaScript實(shí)現(xiàn)圖片懶加載的方法詳解
圖片懶加載是一種優(yōu)化網(wǎng)頁(yè)性能的技術(shù),主要作用是延遲加載視口外的圖片,直到用戶滾動(dòng)到它們附近時(shí)才加載,下面我們就來(lái)看看前端實(shí)現(xiàn)圖片懶加載的多少方法吧2025-12-12
CSS+JS實(shí)現(xiàn)點(diǎn)擊文字彈出定時(shí)自動(dòng)關(guān)閉DIV層菜單的方法
這篇文章主要介紹了CSS+JS實(shí)現(xiàn)點(diǎn)擊文字彈出定時(shí)自動(dòng)關(guān)閉DIV層菜單的方法,設(shè)計(jì)javascript操作菜單的彈出與關(guān)閉的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-05-05
基于javascript實(shí)現(xiàn)圖片切換效果
這篇文章主要介紹了基于javascript實(shí)現(xiàn)圖片切換效果的相關(guān)資料,需要的朋友可以參考下2016-04-04
JS圖片自動(dòng)輪換效果實(shí)現(xiàn)思路附截圖
這篇文章主要介紹了JS實(shí)現(xiàn)的圖片自動(dòng)輪換效果,有具體的實(shí)現(xiàn)思路及截圖,希望對(duì)大家學(xué)習(xí)有所幫助2014-04-04
使用svg實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘效果
這篇文章主要為大家詳細(xì)介紹了如何使用svg實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
微信小程序地圖定位的實(shí)現(xiàn)方法實(shí)例
小程序功能的強(qiáng)大想必使用過(guò)的人都知道,下面這篇文章主要給大家介紹了關(guān)于微信小程序地圖定位的實(shí)現(xiàn)方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
JavaScript實(shí)現(xiàn)把rgb顏色轉(zhuǎn)換成16進(jìn)制顏色的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)把rgb顏色轉(zhuǎn)換成16進(jìn)制顏色的方法,涉及javascript實(shí)現(xiàn)數(shù)制轉(zhuǎn)換的相關(guān)技巧,需要的朋友可以參考下2015-06-06

