Я використовую користувальницький інтерфейс JQuery та Bootstrap, тому зіткнувся з цією проблемою, і я думаю, що це конфлікт між ними, оскільки, як правило, текстова область або введений файл можна редагувати за своєю природою, але я зробив це рішення після тестування всіх вищезазначених відповідей, але жодної вирішити підтримку крос-браузера для всіх основних браузерів , але я вирішив це, і я хочу поділитися своїм рішенням, ви можете використовувати його для введення тексту та тексту
(Перевірено на робочому столі: IE (Усі версії), Chrome, Safari, Windows Edge, Firefox, Visual Studio Cordova Ripple Viewer у Windows і Visual Studio Cordova Windows 10 Store App)
(Тестується на мобільних пристроях: Chrome, Firefox, Інтернет-браузер Android та додаток Visual Studio Cordova на Android і Visual Studio Cordova Windows 8 + 8.1 + 10 Phone App)
Це HTML-код:
<textarea contenteditable id="textarea"></textarea>
Це код CSS:
textarea {
-webkit-user-select: text !important;
-khtml-user-select: text !important;
-moz-user-select: text !important;
-ms-user-select: text !important;
user-select: text !important;
background-color:#fff !important;
color:#733E27 !important;
}
Це код JQuery на готовий документ
$("textarea").click(function() {
setTimeout(function(){
$("textarea").focus();
$("textarea").enableSelection();
var val = $("textarea").val();
if (val.charAt(val.length-1) !== " " && val.length !== 1) {
alert(val.length);
val += " ";
}
$("textarea").val(val);
}, 0);
});
if (navigator.userAgent.indexOf('Safari') !== -1 || navigator.userAgent.indexOf('Chrome') !== -1) {
$("textarea").onfocus(function(e) {
setTimeout(function(){
var end;
if ($("textarea").val === "") {
end = 0;
} else {
end = $("textarea").val.length;
}
if ($("textarea").setSelectionRange) {
var range = document.getElementById('textarea').createTextRange();
if (range) {
setTimeout(range, 0, [end, end]);
} else {
var aRange = document.getElementById('textarea').createTextRange();
aRange.collapse(true);
aRange.moveEnd('character', end);
aRange.moveStart('character', end);
aRange.select();
}
}
e.preventDefault();
return false;
}, 0);
});
}
Ви можете протестувати це в моєму веб-додатку за адресою www.gahwehsada.com