定義和使用
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>