js实现禁止页面复制功能、禁用页面右键菜单等功能。
<body oncontextmenu="return false">禁用网页右键菜单,但是仍然可以使用快捷键复制。
js代码禁用复制功能:
<script type="text/javascript">
document.body.onselectstart=document.body.oncontextmenu=function(){ return false;}
</script>
注意这段代码必须放在body元素后面,放在前面或者放在head里面都不起作用。
补全:document.body.onselectstart 页面选中功能。
document.body.oncontextmenu页面右键菜单。
document.body.ondragstart页面内容拖拽功能,拖拽是可以实现复制的。禁止复制时需要将其禁用。
document.body.oncopy页面内容复制功能,当禁用时,即使你点击了复制或使用了快捷键但是你剪切板中的内容不是你刚复制的内容而是你以前放在剪切板中的内容或为空。
document.body.oncut页面内容剪切功能,禁用和效果和禁用复制功能类似。
注意:当使用了上述禁用功能后,如果页面的某个角落还可以右键或复制,那是因为你的body没有覆盖整个页面,可以在body上添加如下属性。
leftMargin=0 topMargin=0 style="width: 100%;height: 100%;"
通过设置body属性来禁用复制功能代码如下:
<body oncontextmenu="return false" onselectstart="return false"
ondragstart="return false" oncopy="return false"
oncut="return false;
leftMargin=0
topMargin=0 style="width: 100%;height: 100%;" >
以下代码是禁用网页另存为但是我测试没有成功,谁知道原因可以在下面给出评论,谢谢。
<noscript>
<iframe scr="*.htm"></iframe>
</noscript>
</body>
js代码案例:
//*** 屏蔽右键 ***
function click(e) {
if (document.all) {
if (event.button==1||event.button==2||event.button==3) {
oncontextmenu='return false';
}
}
if (document.layers) {
if (e.which == 3) {
oncontextmenu='return false';
}
}
}
if (document.layers) {
document.captureEvents(Event.MOUSEDOWN);
}
document.onmousedown=click;
document.oncontextmenu = new Function("return false;")
//*******************************************
document.onkeydown=function(evt){
if(document.selection.createRange().parentElement().type == "file"){
return false;
}
if ((event.keyCode==116)|| //屏蔽 F5 刷新键
(event.ctrlKey && event.keyCode==82)){ //Ctrl + R
event.keyCode=0;
event.returnValue=false;
}
if ((window.event.altKey)&&(window.event.keyCode==115)){ //屏蔽Alt+F4
return false;
}
}