高级前端
js
【Q446】如何实现页面文本不可复制

如何实现页面文本不可复制

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 454 (opens in a new tab)

Author 回答者: ssruoyan (opens in a new tab)

user-select: none 不可选中就不可复制👀

Author 回答者: shfshanyue (opens in a new tab)

有 CSS 和 JS 两种方法,以下任选其一或结合使用

使用 CSS 如下:

user-select: none;

或使用 JS 如下,监听 selectstart 事件,禁止选中。

当用户选中一片区域时,将触发 selectstart 事件,Selection API 将会选中一片区域。禁止选中区域即可实现页面文本不可复制。

document.body.onselectstart = (e) => {
  e.preventDefault();
};
 
document.body.oncopy = (e) => {
  e.preventDefault();
};

Author 回答者: ethanlamm (opens in a new tab)

https://zhuanlan.zhihu.com/p/348299601 (opens in a new tab)