2013-05-29 70 views
45

我使用JavaScript來我的網站禁用文本選擇。的javascript:禁用文本選擇

代碼:

<script type="text/JavaScript"> 

function disableselect(e){ 
return false 
} 
function reEnable(){ 
return true 
} 
document.onselectstart=new Function ("return false") 
if (window.sidebar){ 
document.onmousedown=disableselect 
document.onclick=reEnable 
} 
</script> 

類似的腳本可以在這裏找到:http://rainbow.arch.scriptmania.com/scripts/no_right_click.html

在我的本地:所有瀏覽器(火狐,Chrome,IE和Safari)工作的偉大。

在我的直播網站:一切ok EXCEPT Firefox瀏覽器。

我的問題是:

  1. 有沒有人有一個建議,爲什麼Firefox的表現不同的活動站點和本地主機。注意:Javascript已啓用。

  2. 也許我的腳本是過於簡單化了,所以我試圖用完全相同的結果如下:http://freeware.ke-zo.com/CODES/DisableRC.txt

+4

讓我建議你避免的Javascript這個用法案件。只要使用CSS,你可以找到有關CSS文本選擇[在此提問]更多的信息(http://stackoverflow.com/questions/826782/css-rule-to-disable-text-selection-highlighting) –

+0

第二腳本可能太舊了。刪除!因爲的document.all我認爲它打破了FX支持 – mplungjan

+0

焦點的時候不被FF和充分的理由支持 –

回答

131

只要使用這個CSS方法:

body{ 
    -webkit-touch-callout: none; 
    -webkit-user-select: none; 
    -khtml-user-select: none; 
    -moz-user-select: none; 
    -ms-user-select: none; 
    user-select: none; 
} 

你可以在這裏找到了相同的答案: How to disable text selection highlighting using CSS?

+5

此外,請添加從哪裏找到此答案的鏈接:http://stackoverflow.com/questions/826782/css-rule-to-disable-text-selection-highlighting#4407335 –

+0

非常感謝。身體中的CSS適用於除IE以外的所有情況。有沒有整潔的CSS解決方案也爲IE解決這個問題?我現在正在使用Js和CSS的組合來覆蓋所有瀏覽器!你好。 – arpeggio

+0

1.爲什麼沒有被標記爲解決方案?......它以最準確和最簡單的方式解決了問題。 2.應該提到的是,這個CSS defition可以在任何HTML元素上實現,而不僅僅是BODY。 – TheCuBeMan

10

對於JavaScript使用此功能:

function disableselect(e) {return false} 
document.onselectstart = new Function (return false) 
document.onmousedown = disableselect 

,使選擇使用這樣的:

function reEnable() {return true} 

和任何地方使用這個功能,你想:

document.onclick = reEnable 
11

我寫滑塊UI控件提供拖動功能,這是我的路當用戶拖動時防止內容選擇:

function disableSelect(event) { 
    event.preventDefault(); 
} 

function startDrag(event) { 
    window.addEventListener('mouseup', onDragEnd); 
    window.addEventListener('selectstart', disableSelect); 
    // ... my other code 
} 

function onDragEnd() { 
    window.removeEventListener('mouseup', onDragEnd); 
    window.removeEventListener('selectstart', disableSelect); 
    // ... my other code 
} 

綁定startDrag您DOM:

<button onmousedown="startDrag">...</button> 

如果你想要靜態禁用所有元素上的文本選擇,執行代碼時元件裝入:

window.addEventListener('selectstart', function(e){ e.preventDefault(); });