Tim Downs 답변 외에도 oldIE에서도 작동하는 솔루션을 만들었습니다.
var selectText = function() {
var range, selection;
if (document.body.createTextRange) {
range = document.body.createTextRange();
range.moveToElementText(this);
range.select();
} else if (window.getSelection) {
selection = window.getSelection();
range = document.createRange();
range.selectNodeContents(this);
selection.removeAllRanges();
selection.addRange(range);
}
};
document.getElementById('foo').ondblclick = selectText;
IE 8+, Firefox 3+, Opera 9+ 및 Chrome 2+에서 테스트되었습니다. 심지어 나는 그것을 jQuery 플러그인으로 설정했습니다.
jQuery.fn.selectText = function() {
var range, selection;
return this.each(function() {
if (document.body.createTextRange) {
range = document.body.createTextRange();
range.moveToElementText(this);
range.select();
} else if (window.getSelection) {
selection = window.getSelection();
range = document.createRange();
range.selectNodeContents(this);
selection.removeAllRanges();
selection.addRange(range);
}
});
};
$('#foo').on('dblclick', function() {
$(this).selectText();
});
... 그리고 누가 관심을 갖고 있는지, 여기 모든 커피 중독자들에게 똑같은 내용이 있습니다.
jQuery.fn.selectText = ->
@each ->
if document.body.createTextRange
range = document.body.createTextRange()
range.moveToElementText @
range.select()
else if window.getSelection
selection = window.getSelection()
range = document.createRange()
range.selectNodeContents @
selection.removeAllRanges()
selection.addRange range
return
최신 정보:
전체 페이지 또는 편집 가능 영역의 내용 (으로 contentEditable
표시됨) 을 선택하려면 로 전환 designMode
하고 사용하여 훨씬 간단하게 수행 할 수 있습니다.document.execCommand
.
좋은있다 MDN에서 시작 지점 과 littledocumentation은 .
var selectText = function () {
document.execCommand('selectAll', false, null);
};
(IE6 +, Opera 9+, Firefoy 3+, Chrome 2+에서 잘 작동합니다) http://caniuse.com/#search=execCommand
selectElementContents()
A의setTimeout()
또는requestAnimationFrame()
경우는 호출onfocus
. jsfiddle.net/rudiedirkx/MgASG/1/show