Для выбора вы хотите selectionStart
и selectionEnd
.
Что касается текущего элемента, используйте document.activeElement
.
Таким образом, в качестве комбинации вы можете использовать: http://jsfiddle.net/rBPte/1/.
Как отметил Тим Даун, вам потребуется более сложное решение для Internet Explorer версии 8 или ниже: Положение каретки в текстовой области, в символах с начала
function getText(elem) { // only allow input[type=text]/textarea
if(elem.tagName === "TEXTAREA" ||
(elem.tagName === "INPUT" && elem.type === "text")) {
return elem.value.substring(elem.selectionStart,
elem.selectionEnd);
// or return the return value of Tim Down's selection code here
}
return null;
}
setInterval(function() {
var txt = getText(document.activeElement);
document.getElementById('div').innerHTML =
txt === null ? 'no input selected' : txt;
}, 100);