实现右键,一键复制工能。以及防复制工能。
一键复制工能
<div>
<span id="copyMy" onmousedown="copyFn(event)" oncontextmenu="doNothing()">右键复制</span>
</div>
<script>
function doNothing() { // 取消右键弹出的菜单
window.event.returnValue = false;
return false;
}
function copyFn(event) {
var val = document.getElementById('copyMy');
if (event.button === 2) { // 判断是否是鼠标右键
window.getSelection().selectAllChildren(val);
document.execCommand("Copy");
alert("已复制好,可贴粘。");
}
}
</script>
防复制工能
防复制主要有三个方向可以考虑:
1. 取消文字选中
- css实现
body {
height: 100vh;
width: 100vw;
-moz-user-select: none; /*火狐*/
-webkit-user-select: none; /*webkit浏览器*/
-ms-user-select: none; /*IE10*/
-khtml-user-select: none; /*早期浏览器*/
user-select: none;
}
- js实现
document.body.onselect = document.body.onselectstart = document.body.ondrag = document.body.ondragstart = function () {
return false;
}
2. 取消右键弹窗
document.body.oncontextmenu = function () {
return false;
}
3. 取消复制
document.body.oncopy = document.body.onbeforecopy = function () {
return false;
}
总结:个人认为,禁止复制,主要使用:取消右键弹窗、取消复制,就可以了。(可以参考百度文库是如何做的)