html文件 你可能能查看到这个页面的源代码,但是你需要做一些工作
<!DOCTYPE html>
<html>
<head>
<title>onMousedown capture</title>
<script src="script.js"></script>
</head>
<body>
<h1>Important source data that someone might want to look at.</h1>
</body>
</html>
script.js 这个脚本会阻止经验不太丰富的用户在页面上打开快捷菜单
if (typeof document.oncontextmenu == "object") {
if (document.all) {
document.onmousedown = captureMousedown;
}
else {
document.oncontextmenu = captureMousedown;
}
}
else {
window.oncontextmenu = captureMousedown;
}
function captureMousedown(evt) {
if (evt) {
var mouseClick = evt.which;
}
else {
var mouseClick = window.event.button;
}
if (mouseClick==1 || mouseClick==2 || mouseClick==3) {
alert("Menu Disabled");
return false;
}
}
下面对这段脚本语言做些解释:
if (typeof document.oncontextmenu == "object") {
if (document.all) {
document.onmousedown = captureMousedown;
第一块代码检查浏览器是否是Firefox,这种浏览器使用window.oncontextmenu(因此不知道document.oncontextmenu)。如果它不是Firefox,再检查document.all,这是检查浏览器是否是IE的简便方法。如果它是IE,就在触发onmousedown时运行captureMousedown()。
else {
document.oncontextmenu = captureMousedown;
如果到达了这里,就说明访问者使用的是Safari,这种浏览器需要在document对象上设置oncontextmenu。
else {
window.oncontextmenu = captureMousedown;
最后,如果浏览器是Firefox,就让window的oncontextmenu事件调用captureMousedown()函数。
function captureMousedown(evt) {
这个函数要处理onmousedown和oncontextmenu事件。基于Netscape的浏览器和Safari在触发事件时会自动地生成和传递evt参数,这个变量包含关于事件的信息。
if (evt) {
var mouseClick = evt.which;
}
else {
var mouseClick = window.event.button;
}
这个evt变量存在(访问者点击了鼠标的右键),就可以通过检查evt.which来判断用户单击的是哪个按钮。如果用户使用IE,用户操作的结果会在wondiw.event.button中找到。无论是哪种情况,结果都储存在mouseClick变量中。
if (mouseClick==1 || mouseClick==2 || mouseClick==3) {
alert("Menu Disabled");
return false;
}
如果mouseClick是1、2或3,就弹出一个警告框,向用户指出这个功能以已经禁用了,并返回false。返回false会阻止显示菜单窗口。