2013-08-07 2 views
2

jsFiddle에서는 마우스를 사용하여 Firefox에서 텍스트를 선택할 수 없습니다. 그러나 이것은 여전히 ​​Cmd-A 또는 Ctrl-A 키 시퀀스를 사용하여 가능합니다. Firefox에서이 기능을 비활성화하는 방법이 있습니까?Firefox에서 Ctrl-A (Cmd-A) 텍스트 선택 사용 안 함

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

내가 사용자를 향상시키기 위해 특정 요소에서는 Ctrl-A + Ctrl-C를 작업을 수 있도록 텍스트 복사를 차단하지이 작업을 수행하려고 만에 오전 :

나는이 CSS 클래스를 사용하고 있습니다 경험. 마찬가지로, 페이지로 이동하여 복사 한 다음 Excel에 붙여 넣습니다. 유용한 정보 만 Excel에 저장해야합니다 (저작권, 로그 아웃 링크, 메뉴 등 없음).

+0

나는 그 헛된 중 하나의 방법 때문에, 텍스트의 복사를 방지하는 것을 시도하지 않는 바랍니다. – deceze

+0

아니, 단지 선택. 그것은 단지 시각적 인 것입니다. 나는이 문제를 편집하고이 발언을 덧붙였다. –

답변

0

Google은 친구입니다.

/*********************************************** 
* Disable Text Selection script- © Dynamic Drive DHTML code library (www.dynamicdrive.com) 
* This notice MUST stay intact for legal use 
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code 
***********************************************/ 

function disableSelection(target) { 
    if (typeof target.onselectstart != "undefined") //IE route 
    target.onselectstart = function() { return false; } 
    else if (typeof target.style.MozUserSelect != "undefined") //Firefox route 
    target.style.MozUserSelect = "none" 
    else //All other route (ie: Opera) 
    target.onmousedown = function() { return false; } 
    target.style.cursor = "default"; 
} 

//Sample usages 
//disableSelection(document.body) //Disable text selection on entire body 
//disableSelection(document.getElementById("mydiv")) //Disable text selection on element with id="mydiv" 

는 위의 코드 수정 : http://jsfiddle.net/jUfe4/7/

function disableSelection(target) { 
    var ieSelect = typeof target.onselectstart != "undefined"; 
    var ffSelect = typeof target.style.MozUserSelect != "undefined" 

    if (ieSelect) target.onselectstart = function() { return false; }; 
    else if (ffSelect) target.style.MozUserSelect = "none" 
    else target.onmousedown = function() { return false; }; 

    target.style.cursor = "default"; 
} 
+0

편집 된 질문 (끝 부분)을 참조하십시오. 이는 '포함 기반 요소 선택'(즉, 선택을 모든 곳에서 사용 중지하지만 특정 요소에서만 사용 가능)의 경우 매우 비싼 옵션 (실적)처럼 보입니다. 내가 맞습니까? –

0

파이어 폭스에서 만 시각 일 (버그) 인 것 같습니다. Ctrl-A를 누르면 텍스트가 선택되지만 Ctrl-C를 누르면 이 아닌이 복사됩니다.

0

이 시도 :

var isCtrl = false, 
    isCmd = false; 

$(document).keyup(function (e) { 

if(e.ctrlKey) 
    isCtrl=false; 
    isCmd = false; 

}).keydown(function (e) { 
    if(e.ctrlKey) 
     isCtrl = true; 
     isCmd = true; 

    if(e.which == 65 && isCtrl == true) { 
     console.log('ctrl+a');  
     return false; 
    } 

    if(e.which == 65 && isCmd == true) { 
     console.log('cmd+a');  
     return false; 
    } 
}); 

데모 : http://jsfiddle.net/9ytfe/13/

+0

아마 조합 : http://jsfiddle.net/9ytfe/14/ 그러나 아직 완료되지 않았습니다. 파이어 폭스에서는 마우스 오른쪽 버튼으로 클릭 -> 모두 선택 또는 두 번 클릭 할 수 있습니다. 이들은 여전히 ​​텍스트를 선택할 것입니다. 그래서 아마도 onselectstart를 사용하는 해결책에 더 가까운 해결책이 더 좋을 것입니다. –

0
$(function(){ 
    $(document).keydown(function(objEvent) {   
     if (objEvent.ctrlKey) {   
      if (objEvent.keyCode == 65) {       
       objEvent.disableTextSelect(); 
       return false; 
      }    
     }   
    }); 
}); 

65 'A'의 ASCII 코드, 당신은 'A'에 대해서도 확인하려면 97를 추가합니다.

당신은 CSS와 함께 할 수 있습니다

div { 
    user-select:none; 
    -moz-user-select: none; 
    -webkit-user-select: none; 
    -ms-user-select: none; 
} 

Documentation

관련 문제