最近做一个培训系统,有一个需求就是禁止用户在网页里面进行复制,贴糊文字,防止学生作弊。所以在网上搜了一下如何解决的,自己也整理了一下!
原网址:https://www.cnblogs.com/momo798/p/6797670.html(感谢沫沫798)
第一种解决方案:
在标签里面加入方法!例如
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input oncopy="return false;" onpaste="return false;" oncut="return false;" oncopy="return false" oncut="return false" value="123">
<textarea oncopy="return false;" onpaste="return false;" oncut="return false;" oncopy="return false" oncut="return false" >
123
</textarea>
</body>
</html>
这样就可以实现禁止input框复制或者贴糊文字了!但是这样解决有点麻烦,你需要在没一个标签上面都加入这个属性,所以就出现了js的的引入。
第二种:引入js
//index.js文件
// 禁止右键菜单
document.oncontextmenu = function() {
return false;
};
// 禁止文字选择
document.onselectstart = function() {
return false;
};
// 禁止复制
document.oncopy = function() {
return false;
};
// 禁止剪切
document.oncut = function() {
return false;
};
// 禁止粘贴
document.onpaste = function() {
alert('请输入文字,不允许贴糊');
return false;
};
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>vc</title>
<script src="js/index.js" type="text/javascript" charset="utf-8"></script>
<!--这里引入自己的js文件-->
</head>
<body>
<div id="app">
<h1>本代码在UC手机浏览器上不生效,其它手机浏览器暂未发现问题、PC全部没问题。</h1>
<p>这是一段示例文字,我无法被选中,也无法按下鼠标右键,即使被选中你也无法复制!</p>
<input type="text" value="文本框中的文字可以选中,但是无法复制粘贴" />
<textarea></textarea>
</div>
<!-- built files will be auto injected -->
</body>
</html>
这样就可以实现页面无法贴糊和复制了!
本人菜鸟一个,欢迎大佬指正!!!