2009-04-19 15 views
4

ドラッグ可能なスクロールバーを持つ画像ビューアで作業しています。ユーザーがスクロールバーをドラッグすると、Webページ上のテキストの一部が選択されます。私は試しましたjavascriptを使用して選択を削除します

window.getSelection().removeAllRanges(); 

しかし、それはIE7/8では動作しないようです。また、IE7/8では "うまく"機能すると思われる

document.getSelection().removeAllRanges(); 

も試しました。

これを行う方法は他にありますか?任意のjQueryのソリューションの知っているが、存在する場合、(私に知らせてはいけない:

はEDIT:これは、あなたが(と一部のCSSを追加することができonmouse-イベントのコンテキスト

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

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

答えて

6

特に "mousedown"イベントで使用する関数でfalseを返すようにしてください。また、document.onselectstartとdocument.ondragstartでfalseを返すと役立ちます。

+1

あなたの要素の 'ondragstart'で 'return false'はIEでは必須で、他は 'onmousedown'と同じです。これは 'removeAllRanges'を試すよりも優れたアプローチです。 – bobince

4

です

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

とにかく、IEのために、あなたはその要素にjQueryを使って独自の属性を()を追加する必要があります:これに対処するためにjqueryの)

unselectable="on" 
+0

テキストを含む要素に属性を追加する必要がありますか、それともすべてのテキスト要素を保持する親要素に属性を追加する必要がありますか?なぜならIEビューでは、イメージビューア全体を保持する要素では選択できないIE設定では動作しないように見えるからです。 – peirix

+0

MSDNドキュメントによると、それは不可能です(リンクを投稿できません、Googleは "msdn unselectable")。私はこれについて全く知らなかった。それはBYKの方法を使用して試してみてください、IEで動作するはずです。 –

+0

それは私に多くの助けてくれてありがとう –

関連する問題