Firefox에서 괜찮습니까? 크롬 및 IE 텍스트가 여전히 선택 가능한데,이 방법이 있습니까? 이 코드는 다른 질문에서 가져온 것이므로 (지금은 찾을 수 없음) 오래된 것일 수 있습니다. 웹킷 사용 khtmlUserSelect
대신 MozUserSelect
를 들어자바 스크립트가 아닌 선택 가능한 텍스트가 Chrome/IE에서 작동하지 않습니다.
disableSelection(document.getElementById("gBar"));
Firefox에서 괜찮습니까? 크롬 및 IE 텍스트가 여전히 선택 가능한데,이 방법이 있습니까? 이 코드는 다른 질문에서 가져온 것이므로 (지금은 찾을 수 없음) 오래된 것일 수 있습니다. 웹킷 사용 khtmlUserSelect
대신 MozUserSelect
를 들어자바 스크립트가 아닌 선택 가능한 텍스트가 Chrome/IE에서 작동하지 않습니다.
disableSelection(document.getElementById("gBar"));
:
// Prevent selection
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 }
}
은 같은 코드에 사용된다.
오페라와 MSIE에서
당신이 CSS입니다/웹킷을 도마뱀에 관련된 두 스타일로
"에"당신이 그것을 적용 할 클래스를 사용할 수 있습니다하기 위해 선택할 수없는-속성을 설정할 수 있습니다
<script type="text/javascript">
<!--
function disableSelection(target)
{
target.className='unselectable';
target.setAttribute('unselectable','on');
}
//-->
</script>
<style type="text/css">
<!--
.unselectable{
-moz-user-select:none;
-khtml-user-select: none;
}
-->
</style>
을
참고 : 선택할 수없는 항목은 하위 요소를 전달하지 않으므로 대상 안에 textNodes 이외의 것이 있으면 MSIE/opera에 이미있는 해결 방법이 필요합니다.
대단히 감사합니다. –
No.웹킷 프리픽스 – Dan
Firefox의 MozUserSelect 스타일링과 마찬가지로 웹 키트 기반 브라우저 (예 : Safari 및 Chrome)에 -webkit-user-select: none
을 사용할 수 있습니다.
나는 Opera에서 -o-user-select: none
을 사용할 수 있다고 생각합니다. 그러나 나는 그것을 시험하지 않았다.
// Prevent selection
function disableSelection(target) {
if (typeof target.onselectstart != "undefined") //IE route
target.onselectstart = function() { return false }
else if (typeof target.style.userSelect != "undefined") //Some day in the future?
target.style.userSelect = "none"
else if (typeof target.style.webkitUserSelect != "undefined") //Webkit route
target.style.webkitUserSelect = "none"
else if (typeof target.style.MozUserSelect != "undefined") //Firefox route
target.style.MozUserSelect = "none"
else //All other route (ie: Opera)
target.onmousedown = function() { return false }
}
, 어쩌면이 당신을 도울 수 있습니다 Wekbit (예를 들어 크롬과 사파리)의 경우 http://msdn.microsoft.com/en-us/library/ms534706(VS.85).aspx
코드 주셔서 감사합니다. 그러나 이것은 여전히 3 명의 모든 브라우저 (FF에서는 작동하지만 크롬/IE에서는 작동하지 않습니다)에서와 똑같은 동작을합니다. –
아프지 만 여전히 기쁨이 될 수는 없습니다. div가 다른 선택 가능한 div에 포함되어있을 가능성이 있습니까? –
Safari 및 Chrome에서 저에게 맞습니다. 그러나 몰리 박사가 쓴대로해야 할 것 같습니다. 그래서 스타일을 CSS 클래스에 넣고 대상에 설정하십시오. –
추가 할 수 있습니다
IE를 들어else if (typeof target.style.webkitUserSelect != "undefined") // Webkit route
target.style.webkitUserSelect = "none";
는 '선택할 수없는'사용
else if (typeof target.unselectable != "undefined") // IE route
target.unselectable = true;
여전히 동일한 동작 –
@Tom Gullen : 여기에서 테스트를 마치면 Chrome에서 작동합니다. http://jsfiddle.net/sje397/Hk3tu/ – sje397
위의 모든 예는 브라우저 버전에 따라 너무 복잡합니다. 나는 simle 해결책을 얻었다 ... 모든 브라우저를 위해 작동한다!
// you can select here which html element you allow to be selected
var ExcludeElems = ["INPUT","SELECT","OPTION"]
function disableSelection (target) {
// For all browswers code will work .....
target.onmousedown = function (e)
{
var i;
var e = e ? e : window.event;
if (e)
for (i=0; i<ExcludeElems.length;i++)
if (e.target.nodeName == ExcludeElems[i])
return true;
return false;
}
이 기능을 더 복잡하게 만들 수 있습니다. 컨테이너 요소에이 코드를 사용하십시오 ...
disableSelection (document)
//disableSelection (document.body)
//disableSelection (divName) ....
왜이 작업을 수행 하시겠습니까? 작동 시키더라도 텍스트를 다시 선택할 수있게 만드는 것은 javascipt를 비활성화하거나 소스를 보는 것처럼 간단합니다. 실제로 선택을 방지하는 유일한 방법은 대신 모든 종류의 접근성 문제를 일으키고 검색 엔진의 텍스트를 숨기는 대신 이미지를 제공하는 것입니다. – tdammers
나는 누군가가이 롤을 물어볼 줄 알았는데, 나는 그 낙오를 완전히 알고있다. 그러나 이것은 데이터 보호를위한 것이 아니고, 내가 만들고있는 웹 앱의 성능을 향상시키는 것일 뿐이므로, 사용자가 드래그/그 안에 포함 된 텍스트가 선택되기 시작하지 않아 앱이 이상하게 작동합니다. –
나는 최근에 그와 같은 문제가 있었고 jQuery 업그레이드로 해결했습니다. – sje397