टिम डाउन्स जवाब के अलावा , मैंने एक समाधान बनाया जो पुराने में भी काम करता है:
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+, फ़ायरफ़ॉक्स 3+, ओपेरा 9+, और क्रोम 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
:
एमडीएन और एक लिटलडिन्जिलेशन पर एक अच्छा शुरुआती बिंदु है ।
var selectText = function () {
document.execCommand('selectAll', false, null);
};
(IE6 +, ओपेरा 9+, फायरफॉय 3+, क्रोम 2+) http://caniuse.com/#search=execCommand में अच्छा काम करता है
selectElementContents()
ए से कॉल किया जाए । देखें jsfiddle.net/rudiedirkx/MgASG/1/showsetTimeout()
requestAnimationFrame()
onfocus