js oncontextmenu事件使用詳解
定義和使用
oncontextmenu 事件在元素中用戶右擊鼠標(biāo)時觸發(fā)并打開上下文菜單。
注意:所有瀏覽器都支持 oncontextmenu 事件, contextmenu 元素只有 Firefox 瀏覽器支持。
實例
當(dāng)用戶在 <div> 元素 上右擊鼠標(biāo)時執(zhí)行 JavaScript :
<div oncontextmenu="myFunction()" contextmenu="mymenu">
用oncontextmenu事件單禁用右鍵菜單
onconTextmenu=window.event.returnValue=false;右鍵菜單禁用,用這個可以禁止復(fù)制。
在<body>中加入屬性代碼:
<script>
window.document.oncontextmenu = function(){
//alert('請不要點擊鼠標(biāo)右鍵!');
return false;
}
</script>
oncontextmenu="return false"
onselectstart="return false" 禁止選中網(wǎng)頁上的內(nèi)容
oncopy="return false" 防復(fù)制用戶在網(wǎng)頁上選中的內(nèi)容
防止用戶另存網(wǎng)頁:
利用<noscript><iframe src=*.html></iframe></noscript>標(biāo)簽,能防止網(wǎng)頁的直接另存,但不能防止網(wǎng)頁被人使用工具下載
*為通配符。
例1:
<html>
<head>
<title>OnContextMenu事件</title>
<script language="JavaScript">
<!--
function uFunction()
{
document.all.infoDiv.innerHTML='你按下了鼠標(biāo)右鍵,但是右鍵菜單不能 顯示!';
}
function uFunction2()
{
document.all.infoDiv.innerHTML='你按下了Ctrl+鼠標(biāo)右鍵,可以 顯示右鍵菜單。';
}
//-->
</script>
</head>
<body oncontextmenu="if(!event.ctrlKey){uFunction();return false}else{uFunction2()}">
<div id="infoDiv">你按下了鼠標(biāo)右鍵,但是右鍵菜單不能 顯示!<br>你按下了Ctrl+鼠標(biāo)右鍵,可以顯示右鍵菜單。
</div>
</body>
</html>
例2:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>利用OnMousedown和OnContextmenu為表格添加鼠標(biāo)左中右鍵單擊的處理</title>
<script type="text/javascript">
var keyArray = new Array(
new Array(0, "右鍵"),
new Array(1, "左鍵"),
new Array(2, "右鍵"), // 測試在IE7中按右鍵是2,在Maxthon2.0正式版中是0
new Array(3, "左鍵右鍵同時按"),//在IE7中我測試捕獲不到,慎用
new Array(4, "中鍵")
//測試同時按兩個鍵更多的表示
//new Array(6, "中鍵右鍵同時按")
);
function Click()
{
var message = GetKeyMessage(event.button);
alert(message);
if (event.button == 2 || event.button == 0) //按右鍵,// 測試在IE7中按右鍵是2,在Maxthon2.0正式版中是0
{
//處理代碼
}
}
function GetKeyMessage(button)
{
for (var i = 0; i < keyArray.length; i++)
{
if (keyArray[i][0] == button)
{
return keyArray[i][1] + ", event.button = " + button;
}
}
return "未知組合鍵, event.button = " + button;
}
</script>
</head>
<body>
<table cellpadding="0" cellspacing="0" border="1">
<tr>
<!--oncontextmenu="return false"屏蔽快捷菜單-->
<td oncontextmenu="return false" onmousedown="Click()">請分別用左鍵、右鍵、中鍵、左鍵右鍵組合點這里測試</td>
</tr>
<tr>
<td>這個表格沒有處理,點這里沒反應(yīng)</td>
</tr>
</table>
</body>
</html>
相關(guān)文章
關(guān)于JavaScript的URL.createObjectURL()的使用方法
這篇文章主要介紹了關(guān)于URL.createObjectURL()的使用方法,使用createObjectURL可以節(jié)省性能并更快速,只不過需要在不使用的情況下手動釋放內(nèi)存,還不清楚的朋友一起來看看吧2023-04-04
深入理解JavaScript系列(48):對象創(chuàng)建模式(下篇)
這篇文章主要介紹了深入理解JavaScript系列(48):對象創(chuàng)建模式(下篇),本篇主要是介紹創(chuàng)建對象方面的模式的下篇,利用各種技巧可以極大地避免了錯誤或者可以編寫出非常精簡的代碼,需要的朋友可以參考下2015-03-03
javaScript中"=="和"==="的區(qū)別詳解
對于JavaScript中比較運算符,可能大家用的比較多的是“==”、對于“===”很多人可能很陌生。=== 表示恒等,首先比較兩邊的變量數(shù)據(jù)類型是否相等,其次比較兩邊的變量的數(shù)值是否相等;== 表示相等即僅僅比較兩邊變量的數(shù)值是否相等。2018-03-03
淺談javascript基礎(chǔ)之客戶端事件驅(qū)動
下面小編就為大家?guī)硪黄獪\談javascript基礎(chǔ)之客戶端事件驅(qū)動。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06
js parsefloat parseint 轉(zhuǎn)換函數(shù)
JavaScript提供了3個顯式的類型轉(zhuǎn)換函數(shù),分別是eval()、parseInt()和parseFloat()。2010-01-01
JavaScript字符串對象substr方法入門實例(用于截取字符串)
這篇文章主要介紹了JavaScript字符串對象substr方法入門實例,substr用于根據(jù)開始位置和長度截取字符串,需要的朋友可以參考下2014-10-10

