선택한 모든 텍스트를 선택 취소하는 기능이 자바 스크립트에 있습니까? 나는 그것이 같은 단순한 전역 함수가되어야한다고 document.body.deselectAll();
생각한다.
선택한 모든 텍스트를 선택 취소하는 기능이 자바 스크립트에 있습니까? 나는 그것이 같은 단순한 전역 함수가되어야한다고 document.body.deselectAll();
생각한다.
답변:
이 시도:
function clearSelection()
{
if (window.getSelection) {window.getSelection().removeAllRanges();}
else if (document.selection) {document.selection.empty();}
}
이렇게하면 모든 주요 브라우저에서 일반 HTML 콘텐츠의 선택이 지워집니다. 텍스트 입력이나 <textarea>
Firefox에서 선택을 지우지 않습니다 .
removeAllRanges()
메서드는 현재 모든 브라우저에서 단락 내의 텍스트 또는 유사한 비 양식 필드 요소에 대해 작동합니다. 양식 필드 (예 : 텍스트 영역)의 경우이 방법은 IE9 및 FF5에서 작동하지 않습니다.
window.getSelection().removeAllRanges();
먼저 사용하십시오 . 2004 년 또는 4004 표준 준수 코드는 항상 궁극적으로 우리가 사용하는 코드이므로 예외없이 먼저 감지하십시오!
다음은 텍스트 입력 및 텍스트 영역을 포함하여 모든 선택 항목을 지우는 버전입니다.
데모 : http://jsfiddle.net/SLQpM/23/
function clearSelection() {
var sel;
if ( (sel = document.selection) && sel.empty ) {
sel.empty();
} else {
if (window.getSelection) {
window.getSelection().removeAllRanges();
}
var activeEl = document.activeElement;
if (activeEl) {
var tagName = activeEl.nodeName.toLowerCase();
if ( tagName == "textarea" ||
(tagName == "input" && activeEl.type == "text") ) {
// Collapse the selection to the end
activeEl.selectionStart = activeEl.selectionEnd;
}
}
}
}
<div>
다음 mouseup
이벤트가 발생하지 않습니다. 대신 문서에 mouseup 핸들러를 넣으면 괜찮을 것입니다 : jsfiddle.net/SLQpM/23
Internet Explorer 의 경우 document.selection 개체 의 빈 메서드 를 사용할 수 있습니다 .
document.selection.empty ();
브라우저 간 솔루션에 대해서는 다음 답변을 참조하십시오.
document.selection.clear()
는 IE 에서만 작동 합니다 . 여기를 참조하십시오 : jsfiddle.net/9spL8/4 또한이 방법은 선택한 텍스트를 선택 해제하는 것이 아니라 제거 합니다. 텍스트를 선택 해제하려면 document.selection.empty()
대신 사용하십시오.
이것은 나를 위해 매우 쉽게 작동했습니다 ...
document.getSelection().collapseToEnd()
또는
document.getSelection().removeAllRanges()
크레딧 : https://riptutorial.com/javascript/example/9410/deselect-everything-that-is-selected
window.getSelection().removeAllRanges();
현재 모든 브라우저에서 작동 하는지 확인할 수 있습니다 . 라이브 데모 : jsfiddle.net/hWMJT/1