一般为了保护页面内容,很多网站都需要实现禁止用户复制页面内容的操作,或者是为了诱导用户注册,限制登录之后才允许进行文本的复制操作。
本篇文章教你如何通过 JS、CSS 和 HTML 来禁止用户在页面进行内容复制操作。
一、通过 JavaScript 实现
我们可以通过 JS 代码来禁用网页的复制事件、剪切事件、选择内容事件甚至是右键菜单事件。
1 2 3 4 5 6 7 8
| document.oncontextmenu = function(){ return false; };
document.onselectstart = function(){ return false; };
document.oncopy = function(){ return false; };
document.oncut = function(){ return false; };
|
二、通过 HTML 实现
除了上面提到的方法,我们也可以通过设置标签属性的方式直接禁用页面复制剪切操作:
1 2 3 4 5 6 7 8
| <body oncopy="return false" oncut="return false;" onselectstart="return false" oncontextmenu="return false" >
</body>
|
该方法本质上与 JS 实现方式相同。
通过以下 JS 代码可以恢复页面复制、剪切及内容选中功能:
1 2 3 4
| document.body.oncopy = null; document.body.oncut = null; document.body.onselectstart = null; document.body.oncontextmenu = null;
|
三、通过 CSS 实现
我们也可以通过 CSS 样式,禁止页面内容被选中,从而达到限制复制操作的目的:
1 2 3 4 5 6 7 8
| body { -moz-user-select:none; -webkit-user-select:none; -ms-user-select:none; -khtml-user-select:none; -o-user-select:none; user-select:none; }
|
恢复页面内容选中功能,需要通过 JS 代码进行实现:
1 2 3
| document.body.style.webkitUserSelect = 'auto'; document.body.style.userSelect = 'auto';
|