JavaScript 禁用键盘功能键与鼠标右键及打印限制实现
本文介绍如何在网页中禁用鼠标右键、禁止文本选择与拖放,并通过JavaScript拦截onkeydown事件屏蔽F1至F12功能键、Ctrl组合键及打印快捷键。同时提供CSS媒体查询方案实现打印时隐藏页面内容,适用于需要限制用户交互或保护页面结构的场景。
禁用鼠标右键与基础交互限制
代码如下:
<body oncontextmenu="return false" onselectstart="return false" ondragstart="return false" onbeforecopy="return false" onmouseup=document.selection.empty() oncopy=document.selection.empty() onselect=document.selection.empty()></body> 将上述代码插入网页即可实现禁用鼠标右键功能。
其中 onselectstart="return false" 用于禁止文本选择,ondragstart="return false" 用于禁止拖放操作,oncopy=document.selection.empty() 用于禁止复制内容。
禁止保存页面的方法为:在 head 标签内添加 <noscript><iframe src="*.htm"></iframe></noscript>。
禁止粘贴功能的实现方式为:在输入框中添加 <input type=text onpaste="return false">。
关闭输入法可通过设置样式实现:<input style="ime-mode:disabled">。
屏蔽键盘功能键与组合键
屏蔽鼠标右键的代码如下:
function document.oncontextmenu(){event.returnValue=false;}
屏蔽 F1 帮助键的代码如下:
function window.onhelp(){return false}
屏蔽其他键盘按键的代码如下:
代码如下:
function document.onkeydown()
{
if ((window.event.altKey)&&
((window.event.keyCode==37)|| //屏蔽 Alt+ 方向键 ←
(window.event.keyCode==39))) //屏蔽 Alt+ 方向键 →
{
alert("不准你使用ALT+方向键前进或后退网页!");
event.returnValue=false;
}
/* 注:这还不是真正地屏蔽 Alt+ 方向键,
因为 Alt+ 方向键弹出警告框时,按住 Alt 键不放,
用鼠标点掉警告框,这种屏蔽方法就失效了。以后若
有哪位高手有真正屏蔽 Alt 键的方法,请告知。*/
if ((event.keyCode==8) || //屏蔽退格删除键
(event.keyCode==116)|| //屏蔽 F5 刷新键
(event.ctrlKey && event.keyCode==82)){ //Ctrl + R
event.keyCode=0;
event.returnValue=false;
}
if (event.keyCode==122){event.keyCode=0;event.returnValue=false;} //屏蔽F11
if (event.ctrlKey && event.keyCode==78) event.returnValue=false; //屏蔽 Ctrl+n
if (event.shiftKey && event.keyCode==121)event.returnValue=false; //屏蔽 shift+F10
if (window.event.srcElement.tagName == "A" && window.event.shiftKey)
window.event.returnValue = false; //屏蔽 shift 加鼠标左键新开一网页
if ((window.event.altKey)&&(window.event.keyCode==115)) //屏蔽Alt+F4
{
window.showModelessDialog("about:blank","","dialogwidth:1px;dialogheight:1px");
return false;
}
} 禁止网页打印
屏蔽打印功能的代码如下:
代码如下:
<style>
@media print{
* {display:none}
}
</style>UmiJS 项目构建速度优化与打包体积精简技巧
2026-11-04 22:37:09
原生JS操作DOM与Vue/React虚拟DOM的本质区别
2026-11-04 17:52:27
怎么使用console.group和table优化JS日志可读性
2026-11-03 23:14:34
基于AST抽象语法树的JS代码反混淆实战教程
2026-11-03 21:22:24
JS手机号输入校验的性能优化与用户体验提升
2026-11-03 19:19:19








