屏蔽鼠标右击时自动选中文本的功能

在元素上右击时 如果点击的位置刚好有文本 附近的文本就会被选中
现在我想去掉这个默认功能
试过的方法有两个
1 css user-select:none;
2 js window.getSelection().removeAllRanges();
这两个方法都会有一个问题:会把之前 手动选择的文本 也清楚掉

大佬们,有做过类似功能的 给点思路 万分感谢

阅读 3.7k
2 个回答
document.addEventListener('mousedown', (event) => {
      // 右键
      if (event.button === 2) {
        // 用户没有选择文字
        if (window.getSelection().isCollapsed) {
          // 禁用文字选择
          document.body.style.userSelect = 'none';

          // 下一帧恢复选择能力
          setTimeout(() => {
            document.body.style.userSelect = 'auto';
          }, 0);
        }
      }
    });

就算你什么都不写, 默认情况下。 用户右键单击也会清除之前手动选择的文本啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题