Harika işlev.
doğrudan tıklandığında olsun, bir sınıfın yoluyla düzenlenebilir div herhangi bir sayıda genelinde metnin tam seçimini sağlamak için uyarlanmış, ya da sekmeli ettik:
$.fn.selectText = function(){
var doc = document;
var element = this[0];
//console.log(this, element);
if (doc.body.createTextRange) {
var range = document.body.createTextRange();
range.moveToElementText(element);
range.select();
} else if (window.getSelection) {
var selection = window.getSelection();
var range = document.createRange();
range.selectNodeContents(element);
selection.removeAllRanges();
selection.addRange(range);
}
};
$(".editable").on("focus", function() {
$(this).selectText();
});
$(".editable").on("click", function() {
$(this).selectText();
});
$('.editable').mouseup(function(e){
e.stopPropagation();
e.preventDefault();
// maximize browser compatability
e.returnValue = false;
e.cancelBubble = true;
return false;
});
HTML:
<div class="editable" style="border:dotted 1px #ccc;" contenteditable="true">01 text...</div>
<div class="editable" style="border:dotted 1px #ccc;" contenteditable="true">02 text...</div>
<div class="editable" style="border:dotted 1px #ccc;" contenteditable="true">03 text...</div>
FIDDLE :
http://jsfiddle.net/tw9jwjbv/
Bu konuda tarayıcı uyumluluğu var? – crush
Fiddle FF 28'de çalışıyor, fakat OS temasıyla (CSS 'görünümü' ile) 'contenteditable' girdi öğeleri için çalışmıyor.' 'için element.focus();' eklemek isteyebilirsiniz selectText() 'işlevi, ya da imleç bu alanda olmaksızın metni seçecektir – CoDEmanX
Sadece bir öneri, çalışmaz, çünkü" console.log (this, element) "satırını kaldırın, çünkü çalışmaz. –