Fe-interview: [css] 第40天 怎么才能让图文不可复制?

Created on 25 May 2019  ·  8Comments  ·  Source: haizlin/fe-interview

第40天 怎么才能让图文不可复制?

css

Most helpful comment

-webkit-user-select: none;
-ms-user-select: none;
-moz-user-select: none;
-khtml-user-select: none;
user-select: none;

All 8 comments

-webkit-user-select: none;
-ms-user-select: none;
-moz-user-select: none;
-khtml-user-select: none;
user-select: none;

postcss + user-select: none; 😆

利用 user-select: none 属性,让元素不能被选中。

  • 禁止复制+剪切
  • 禁止右键,右键某些选项:全选、复制、粘贴等
  • 禁用文字选择,能选择却不能复制,体验很差
  • user-selectcss禁止选择文本
// 禁止右键菜单
document.body.oncontextmenu = e => {
    return false;
    // e.preventDefault();
}
// 禁止文字选择
document.body.onselectstart = e => {
    return false;
    // e.preventDefault();
}
// 禁止复制
document.body.oncopy = e => {
    return false;
    // e.preventDefault();
}
// 禁止粘贴
document.body.onpaste = e => {
    return false;
    // e.preventDefault();
}

CSS方式:

/* CSS禁止文本选择,这样不会触发js */
body {
       user-select: none;
       -webkit-user-select: none;
       -moz-user-select: none;
       -ms-user-select: none;
       -o-user-select: none;
      }

使用e.preventDefault()也可以禁用,但建议使用return false这样就不用去访问ee的方法了。

示例中document.body全局都禁用了,也可以对dom(某些区域)进行禁用

来源:JavaScript中的复制粘贴功能

-webkit-user-select: none;
-ms-user-select: none;
-moz-user-select: none;
-khtml-user-select: none;
user-select: none;

-webkit-user-select: none;
-ms-user-select: none;
-moz-user-select: none;
-khtml-user-select: none;
user-select: none;

Was this page helpful?
0 / 5 - 0 ratings