定義和使用
oncontextmenu 事件在元素中用戶右擊鼠標時觸發並打開上下文菜單。
注意:所有浏覽器都支持 oncontextmenu 事件, contextmenu 元素只有 Firefox 浏覽器支持。
實例
當用戶在 <div> 元素 上右擊鼠標時執行 Javascript :
<div oncontextmenu="myFunction()" contextmenu="mymenu">
用oncontextmenu事件單禁用右鍵菜單
onconTextmenu=window.event.returnValue=false;右鍵菜單禁用,用這個可以禁止復制。
在<body>中加入屬性代碼:
<script>
window.document.oncontextmenu = function(){
//alert('請不要點擊鼠標右鍵!');
return false;
}
</script>
oncontextmenu="return false"
onselectstart="return false" 禁止選中網頁上的內容
oncopy="return false" 防復制用戶在網頁上選中的內容
防止用戶另存網頁:
利用<noscript><iframe src=*.html></iframe></noscript>標簽,能防止網頁的直接另存,但不能防止網頁被人使用工具下載
*為通配符。
例1:
<html>
<head>
<title>OnContextMenu事件</title>
<script language="Javascript">
<!--
function uFunction()
{
document.all.infoDiv.innerHTML='你按下了鼠標右鍵,但是右鍵菜單不能 顯示!';
}
function uFunction2()
{
document.all.infoDiv.innerHTML='你按下了Ctrl+鼠標右鍵,可以 顯示右鍵菜單。';
}
//-->
</script>
</head>
<body oncontextmenu="if(!event.ctrlKey){uFunction();return false}else{uFunction2()}">
<div id="infoDiv">你按下了鼠標右鍵,但是右鍵菜單不能 顯示!<br>你按下了Ctrl+鼠標右鍵,可以顯示右鍵菜單。
</div>
</body>
</html>
例2:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>利用OnMousedown和OnContextmenu為表格添加鼠標左中右鍵單擊的處理</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>這個表格沒有處理,點這裡沒反應</td>
</tr>
</table>
</body>
</html>