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

时间:2010-05-28 18:38:51

标签: javascript firefox

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

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

2 个答案:

答案 0 :(得分:8)

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

document.body.style.MozUserSelect="none"

答案 1 :(得分:4)

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

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

    // start drag code
}

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

    // stop drag code
}

这就是我的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;
}