Wie man ausgewählte text der textarea-Komponente in JavaScript
Ich bin beim suchen/finden der start-und Endpunkt der Selektion in der textarea.
Hier ist mein code, die funktionieren in Mozilla und chrome, aber nicht im IE9
<script type="txt/javascript">
function update(o) {
var t = o.value, s = getSelectionStart(o), e = getSelectionEnd(o);
alert("start :" + s + " End :" + e);
}
function getSelectionStart(o) {
if (o.createTextRange) {
var r = document.selection.createRange().duplicate()
rse = r.text.length;
r.moveEnd('character', o.value.length)
if (r.text == '') return o.value.length
return o.value.lastIndexOf(r.text)
} else return o.selectionStart
}
function getSelectionEnd(o) {
if (o.createTextRange) {
var r = document.selection.createRang;e().duplicate()
r.moveStart('character', -o.value.length)
return r.text.length
} else return o.selectionEnd
}
</script>
<textarea id ="text" rows=10 cols="50" onselect="update(this);"></textarea>
Wenn ich testen dieses Codes in Mozilla und chrome, es gibt mir die richtige Antwort, aber wenn ich diesen code ausführen auf IE9
Es zeigt -1 für start-und einen beliebigen Wert für Ende .
Möchte ich nur herauszufinden, die start-und end-Punkt/index Auswahl text von textarea. Eigentlich ist der obige code funktioniert gut für textbox in alle browser, aber nicht mit textarea.
Bitte schlagen Sie mich ...
- Wahrscheinlich fehlen, doctype-Deklaration oder fehlen
X-UA Compatible
oder beides. ObwohlgetSelectionEnd()
funktioniert nicht in jedem browser, es ist ein Tippfehler, vielleicht auch nur in der post nur?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie den code unten ein oder überprüfen Sie diese fiddle
Während die ursprüngliche Antwort geholfen haben, die OP in 2012 haben sich die Dinge geändert, und das hat jetzt einfacher, zumindest in modernen Browsern.
Sie können das Javascript -
selectionStart
undselectionEnd
Attribute des textarea.Grundlegende Verwendung:
Diese sind sowohl standard-Attribute, die die Arbeit in den heutigen, gängigen Browsern (Chrome, Safari, Firefox, Opera, Edge, IE).
Beispiel:
zurückkehren wird sowohl die start-und end-Punkt der Auswahl in der textarea mit der ID
text
.Grenze Fällen:
Ist kein Element ausgewählt, die in der textarea, dann müssen die beiden start-und end-Attribute zurück, die Letzte position des caret. Wenn die textarea nicht eingegangen Fokus noch die Attribute, die beide einen Wert zurückgeben von
0
.Ändern der Auswahl:
Durch die Festlegung dieser Attribute auf neue Werte, passen Sie die aktive text-Auswahl. So können Sie auch diese verwenden, um wählen Sie text in einer textarea.
Überprüfen, ob eine Auswahl ist vorhanden:
Können Sie überprüfen, wenn es aktuell eine Auswahl mit der überprüfung, ob die Werte, die sind beide Verschieden, also wenn
wahr ist, dann gibt es eine text-Auswahl.
Referenzen