<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>中加入屬性代碼:
οncοntextmenu="return false"
onselectstart="return false" 禁止選中網頁上的內容
οncοpy="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