在IE中获得带空格的插入位置

时间:2015-03-03 17:40:53

标签: javascript jquery html

问题在于空格。有时如果插入符号位于空格上,它会忽略空格并找到最后一个字符的位置(即不是空格)。在此 demo 中如果单击字母c的右侧,则将插入符号位置显示为3.然后单击字母d左侧(沿着一个字符),它仍显示插入位置为3.但是,如果先点击d的左侧,则显示位置4(正确的位置)。如果有人可以看看我的jsFiddle,试试这个也许你可以找到一个解决方案。谢谢。

注意,此代码仅适用于IE。

$('input').click(function(){
  var Sel = document.selection.createRange();
      Sel.moveStart('character', -this.value.length);
      CaretPos = Sel.text.length;
  $('span').text(CaretPos);

});

1 个答案:

答案 0 :(得分:0)

最新IE浏览器中的selectionStart worked,Firefox&铬。

$('input').click(function(){
    this.focus();
     /**var Sel = document.selection.createRange();
     Sel.moveStart('character', -inelem.value.length);
     CaretPos = Sel.text.length;*/
    CaretPos = this.selectionStart;   
    $('span').text(CaretPos);
});

但是,如果您担心支持较旧的IE版本,则可以有条件地调用createRange而不是selectionStart。检查this版小提琴。 doGetCaretPosition基于this链接