如何在IE8及更早版本中使用JavaScript设置光标位置

How do you set the cursor position using JavaScript in IE8 and older?

本文关键字:JavaScript 位置 置光标 版本 IE8      更新时间:2023-09-26

我需要设置输入的光标位置。我可以让它在Chrome中正常工作,但我在IE中遇到了问题。我在IE9/10中找到了正常工作的代码,但我找不到任何在IE8及更旧版本中工作的代码。

这就是我的Chrome:

var cursorPosition = 5;
var textArea = $('.the-input-I-Need');
textArea[0].selectionStart = cursorPosition;
textArea[0].selectionEnd = cursorPosition;
//now the cursor would be at the 5th spot in the input

有人知道IE的方法吗?我可以使用jQuery,但没有其他插件。

有一个关于获取和设置IE中插入符号位置的问题:获取文本区域(IE)中的插入符号位置

它还引用了一个实际获得插入符号位置的答案:如何在文本区域中获得选择的起点和终点?

有大量的代码专门用于处理IE,但它会完成你想要做的事情。请注意,getter函数返回一个选择范围,就像setter可以用来设置选择范围一样。在这种情况下,您只需将其称为startOffset等于endOffset:

setSelection(el, startOffset, endOffset);
function setSelectionRange(input, selectionStart, selectionEnd) {
  if (input.setSelectionRange) {
    input.focus();
    input.setSelectionRange(selectionStart, selectionStart);
  }
  else if (input.createTextRange) {
    var range = input.createTextRange();
    range.collapse(true);
    range.moveEnd('character', selectionEnd);
    range.moveStart('character', selectionStart);
    range.select();
  }
}