2010-02-06 4 views
17

oEvent.preventDefault()를 수행하지 않습니다. GC에서 일하니? onmove 이벤트가 발생할 때 텍스트 선택을 방지해야합니다.Google 크롬에서 텍스트를 선택하지 못하게하려면 어떻게해야합니까?

편집 : 그것은 매우 쉬운 것으로 판명 ... 그 후

function disableSelection() { 
    document.onselectstart = function() {return false;} // ie 
    document.onmousedown = function() {return false;} // others 
} 
function enableSelection() { 
    document.onselectstart = null; // ie 
    document.onmousedown = null; // others 
} 

, 아니 텍스트 선택이 이동 이벤트 (트리거없는있다 즉 select 이벤트에 - 예 - 실제로 즉. !)

+0

내 의견으로는 브라우저와 다른 CSS 속성을 통해 선택을 억제하려고 시도하는 것보다이 방법 (또는 'event.preventDefault()'를 사용하는 것이 더 낫다) 그 예측할 수 있습니다. –

답변

43

-webkit-user-select: none CSS 스타일은 사용자가
요소의 텍스트를 선택할 수 있는지 여부를 제어합니다. 완성도를 위해서

, 이것은 (IE 웹 브라우저를 고려하지 않음) 모든 지원하는 브라우저를 다룹니다

.no-select 
{ 
    user-select: none; 
    -o-user-select:none; 
    -moz-user-select: none; 
    -khtml-user-select: none; 
    -webkit-user-select: none; 
} 

그냥 클래스를 만들고, 자바 스크립트를 통해 수행하고 노드의 속성을 추가하려면. IE와 오페라를 들어, unselectable 속성이 너무 el의 자식 요소도 설정 될 unselectable가 필요합니다 요소의 아이에 의해 상속되지 않도록

var el = document.getElementById("myElement"), s = el.style; 
s.userSelect = "none"; 
s.webkitUserSelect = "none"; 
s.MozUserSelect = "none"; 
el.setAttribute("unselectable", "on"); // For IE and Opera 

참고 :

+1

매우 멋지다. CSS를 통해이 작업을 수행 할 수 있는지 알지 못했다. –

+0

JS를 통해 처리해야합니다. –

+9

IE는 웹 브라우저로 간주되지 않습니까? 어떻게한다는거야? –

19

는 자바 스크립트를 사용하여 작업을 수행하려면 "on".

+4

+1을 사용하여 이것을 지원합니다. – Na7coldwater

관련 문제