Con l'utilizzo del metodo di ricerca posizione Caret fornito here ciò farà ciò che si desidera.
function GetCaretPosition(ctrl) {
var CaretPos = 0; // IE Support
if (document.selection) {
ctrl.focus();
var Sel = document.selection.createRange();
Sel.moveStart('character', -ctrl.value.length);
CaretPos = Sel.text.length;
}
// Firefox support
else if (ctrl.selectionStart || ctrl.selectionStart == '0')
CaretPos = ctrl.selectionStart;
return (CaretPos);
}
function getWordAtPos(s, pos) {
var preText = s.substring(0, pos);
if (preText.indexOf(" ") > 0 || preText.indexOf("\n") > 0) {
var words = preText.split(" ");
words = words[words.length - 1].split("\n");
return words[words.length - 1]; //return last word
}
else {
return preText;
}
}
function AlertPrevWord() {
var text = document.getElementById("textArea");
var caretPos = GetCaretPosition(text)
var word = ReturnWord(text.value, caretPos);
if (word != null) {
alert(word);
}
}
Attuazione
<input id="textArea" type="text" />
<br />
<input id="Submit" type="submit" value="Test" onclick="AlertPrevWord()" />
http://jsfiddle.net/arrwP/2/
fonte
2012-03-31 21:37:54
Avete requisiti del browser? Le persone vorranno anche sapere se jquery è ok. – Hemlock
sì, usa tutte le lingue web che vuoi, preferibilmente tutti i browser ma principalmente Firefox :) –