2009-04-19 75 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