Ausgang in Chrome:contenteditable, setzen caret am Ende des Textes (Cross-Browser)
<div id="content" contenteditable="true" style="border:1px solid #000;width:500px;height:40px;">
hey
<div>what's up?</div>
<div>
<button id="insert_caret"></button>
Ich glaube an FF es in etwa so aussehen würde:
hey
<br />
what's up?
und in IE:
hey
<p>what's up?</p>
Leider gibt es keine gute Möglichkeit, es so zu machen, dass jeder Browser anstelle eines div- oder p-Tags eine <br />
einfügt, oder zumindest konnte ich nichts online finden.
wie auch immer, was ich jetzt versuchen zu tun ist, wenn ich traf die Taste, mag ich die Einfügemarke am Ende des Textes festgelegt werden, so sollte es in etwa so aussehen:
jeder weg dies zu tun, so funktioniert es in alle browser?
Beispiel:
$(document).ready(function()
{
$('#insert_caret').click(function()
{
var ele = $('#content');
var length = ele.html().length;
ele.focus();
//set caret -> end pos
}
}
Funktioniert nicht mit Chrome, da CreateTextRange keine Standardfunktion ist. Siehe https://stackoverflow.com/a/41743191/700206. – Lee
@Lee: Es funktioniert gut in Chrome, die 'window.getSelection' und' document.createRange' unterstützt. Der 'createTextRange'-Zweig ist für alte Versionen von Internet Explorer. –
zum Zeitpunkt des Schreibens 'window.getSelection' wird nicht von 0,29% aller Browser unterstützt (IE> 8). siehe: http://caniuse.com/#search=window.getSelection – Silentdrummer