我在一个旧应用程序中具有以下功能,它在Chrome中可以正常工作,但在IE 11中却不能正常工作。我尝试了一个解决方案“ document.getSelection()”,但它确实支持moveStart方法。任何人都可以帮助我重写代码?
function getCaretPos(element) {
var oSel = document.selection.createRange();
oSel.moveStart('character', -element.value.length);
return oSel.text.length;
}
答案 0 :(得分:0)
对于元素textarea
和input
,您可以使用它们的selectionStart
和/或selectionEnd
属性获得插入符号的位置。
不幸的是IE11似乎不支持selectionDirection
属性,因此,如果要这样做,则必须添加另一个侦听器以找出选择内容。
演示:
textarea.addEventListener('mouseup', function(){
console.log("textarea",textarea.selectionStart, textarea.selectionEnd)
})
input.addEventListener('mouseup', function(){
console.log("input", input.selectionStart, input.selectionEnd)
})
<textarea id="textarea">some text</textarea>
<br>
<input id="input" value="some text"/>