在Firefox中拖动鼠标时如何防止文本选择?

pow*_*boy 7 javascript firefox

我想知道这些拖放小部件如何取消拖动元素和页面中其他元素的文本选择.我尝试了下面的代码,它在IE8中工作(不能选择文本)但在Firefox中不起作用(仍然可以选择文本).

<!DOCTYPE html>
<html>
<body>
  <p>Hello World</p>
  <script type="text/javascript">
    document.onmousemove = function() {
      return false;
  }
  </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Mat*_*ith 8

或者,与您的Moz IE8解决方案类似:

document.body.style.MozUserSelect="none"
Run Code Online (Sandbox Code Playgroud)


小智 5

有一种情况,我有一个水平滚动条,并且在拖动滚动条时正在选择页面上的文本。当我的滚动开始函数触发时,我使用 jQuery 在正文中添加一个“不可选择”的类,并在执行滚动停止函数时删除该类。就像这样:

function startDrag(event){
    $('body').addClass('unselectable');

    // start drag code
}

function stopDrag(event){
    $('body').removeClass('unselectable');

    // stop drag code
}
Run Code Online (Sandbox Code Playgroud)

这就是我的 CSS 文档中不可选择的类的样子。

.unselectable {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
Run Code Online (Sandbox Code Playgroud)