<div onCopy={(e) => e.preventDefault()}>
这一段文字禁止被复制
</div>
此方式能实现局部禁止复制
这里介绍的是个人觉的最好的一种方式,原理是禁止复制这个方法调用。此外,你还可以从css的角度去解决,代码如下:
<div className="test"> 这一段文字禁止被复制 </div> css:.test{ -webkit-user-select: none; }
还可以从禁止右键和ctrl按钮等失效的角度出发,或者在已经复制成功后尝试清空或替换剪切板的内容,目前个人还没有实现这样的方式。
一下再给出当前页面禁止复制的方式,只是效果上达到,写出来目的是抛砖引玉;
window.document.onselectstart = () => { return false; } window.document.oncontextmenu = () => { return false; }
以上这种方式的的来源链接:点击打开链接
此外,在整个react项目中禁止复制的方式如下:
在项目路径public->index.html中的<body>中加入属性代码:
oncontextmenu="return false" onselectstart="return false" 禁止选中网页上的内容 oncopy="return false" 防复制用户在网页上选中的内容
延伸:这里是需要注意的是onCopy函数,react中包含的基本事件函数还有如下:
鼠标事件:
onClick
onContextMenu
onDoubleClick
onMouseDown
onMouseEnter
onMouseLeave
onMouseMove
onMouseOut
onMouseOver
onMouseUp
onDrop
onDrag
onDragEnd
onDragEnter
onDragExit
onDragLeave
onDragOver
onDragStart
触摸事件:
onTouchCancel
onTouchEnd
onTouchMove
onTouchStart
键盘事件:
onKeyDown
onKeyPress
onKeyUp
剪切事件:
onCopy
onCut
onPaste
表单事件:
onChange
onInput
onSubmit
焦点事件:
onFocus
onBlur
UI事件:
onScroll
滚动事件:
onWheel