Como obter o intervalo de texto selecionado de textarea em JavaScript
Eu estou tentando recuperar / encontrar o ponto de início e fim da seleção na área de texto. Aqui está o meu código, que funciona bem no Mozilla e no Chrome, mas não funciona no 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>
Quando eu testo este código no Mozilla e chrome, isso me dá uma resposta correta, mas quando executo este código no IE9, ele mostra -1 para start e qualquer valor para end.
Eu quero apenas descobrir o ponto inicial / final / índice de texto de seleção de textarea. Na verdade, o código acima funciona bem para a caixa de texto em todos os navegadores, mas não na área de texto.
Por favor me sugira ...