js oncontextmenu事件使用詳解
定義和使用
oncontextmenu 事件在元素中用戶右擊鼠標(biāo)時(shí)觸發(fā)并打開上下文菜單。
注意:所有瀏覽器都支持 oncontextmenu 事件, contextmenu 元素只有 Firefox 瀏覽器支持。
實(shí)例
當(dāng)用戶在 <div> 元素 上右擊鼠標(biāo)時(shí)執(zhí)行 JavaScript :
<div oncontextmenu="myFunction()" contextmenu="mymenu">
用oncontextmenu事件單禁用右鍵菜單
onconTextmenu=window.event.returnValue=false;右鍵菜單禁用,用這個(gè)可以禁止復(fù)制。
在<body>中加入屬性代碼:
<script>
window.document.oncontextmenu = function(){
//alert('請(qǐng)不要點(diǎn)擊鼠標(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, "右鍵"), // 測(cè)試在IE7中按右鍵是2,在Maxthon2.0正式版中是0
new Array(3, "左鍵右鍵同時(shí)按"),//在IE7中我測(cè)試捕獲不到,慎用
new Array(4, "中鍵")
//測(cè)試同時(shí)按兩個(gè)鍵更多的表示
//new Array(6, "中鍵右鍵同時(shí)按")
);
function Click()
{
var message = GetKeyMessage(event.button);
alert(message);
if (event.button == 2 || event.button == 0) //按右鍵,// 測(cè)試在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()">請(qǐng)分別用左鍵、右鍵、中鍵、左鍵右鍵組合點(diǎn)這里測(cè)試</td>
</tr>
<tr>
<td>這個(gè)表格沒有處理,點(diǎn)這里沒反應(yīng)</td>
</tr>
</table>
</body>
</html>
相關(guān)文章
用JavaScript實(shí)現(xiàn)對(duì)話框的教程
這篇文章主要介紹了用JavaScript實(shí)現(xiàn)對(duì)話框的教程,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06
js對(duì)象內(nèi)部訪問this修飾的成員函數(shù)示例
這篇文章主要介紹了js對(duì)象內(nèi)部訪問this修飾的成員函數(shù)示例,需要的朋友可以參考下2014-04-04
Javascript中arguments和arguments.callee的區(qū)別淺析
這篇文章主要介紹了Javascript中arguments和arguments.callee的區(qū)別淺析,本文用一個(gè)實(shí)例來理解它們的區(qū)別,需要的朋友可以參考下2015-04-04
在javascript中創(chuàng)建對(duì)象的各種模式解析
下面小編就為大家?guī)硪黄趈avascript中創(chuàng)建對(duì)象的各種模式解析。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過來看看吧2016-05-05
JavaScript初學(xué)者建議:不要去管瀏覽器兼容
如果可以回到過去的話,我會(huì)告訴自己這句話:初學(xué)JavaScript的時(shí)候無視DOM和BOM的兼容性,先了解一些基礎(chǔ)知識(shí)最后再考慮兼容性2014-02-02

