2009-04-19 71 views
4

我正在研究具有可拖动滚动条的图像查看器。当用户拖动滚动条时,网页上的一些文本被选中。我试过使用javascript删除选区

window.getSelection().removeAllRanges(); 

但这似乎在IE7/8中不起作用。也试过

document.getSelection().removeAllRanges(); 

这似乎工作就像“良好”与IE7/8。

还有其他的方法吗?不知道任何jQuery的解决方案,但如果有,让我知道(:

编辑:这是onmouse事件的背景下

$("#slideBar").mousedown(function(f) { 
    mouseDown = true; 
    some more code... 
} 

$(document).mouseup(function() { 
    if (mouseDown) { 
     window.getSelection().removeAllRanges(); 
     more code... 
    } 
} 

回答

6

尝试在您使用的函数上返回false,特别是对于“mousedown”事件。在document.onselectstart和document.ondragstart上返回false也会有所帮助。

4

您可以添加一些CSS(带jQuery的)来处理这个:

element { 
    -moz-user-select: none; 
    -webkit-user-select: none; 
    user-select: none; 
} 

无论如何,IE浏览器,则需要该元素的添加专有的属性(使用jQuery):

unselectable="on" 
+0

该属性是否必须添加到包含文本的元素,还是可以为包含所有文本元素的父元素?因为我似乎无法让它在IE中工作,因此无法在包含整个图像查看器的元素上进行选择。 – peirix 2009-04-19 13:37:53

+0

根据MSDN文档,这是不可能的(不能发布链接,谷歌“MSDN不可选”)。我不知道这件事。尝试使用BYK的方法,它应该在IE中工作。 – 2009-04-19 14:23:13