我试图在Angularjs的指令中执行类似的操作。问题是,这在系统中工作正常,但是当我在Android手机中检查它时,无法设置插入标记的位置。我也在几个博客和网站上进行了检查,Android设备中是否有解决方案?

elem.bind("input", function(event) {
       var start = elem[0].selectionStart;
       if(start == 1 && event.currentTarget.value.charAt(start-1)==" "){
       var value = event.currentTarget.value.trim();
       event.currentTarget.value = value;
       elem[0].setSelectionRange(0, 0);
    }
}

是的,如果我不使用setSelectionRange,它将插入符号移到末尾。

最佳答案

我有同样的问题,我用了这个建议,对我有用
Why the setSelectionRange can't work on android 2.3 platform browser

尝试使用包装您的“setSelectionRange”
“setTimeout,间隔为0”

不应解决您的问题。

例如:

   var start = elem[0].selectionStart;
   if(start == 1 && event.currentTarget.value.charAt(start-1)==" "){
   var value = event.currentTarget.value.trim();
   event.currentTarget.value = value;
   setTimeout(() => elem[0].setSelectionRange(0, 0),0);
}

关于javascript - 函数setSelectionRange在Android浏览器中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41353891/

10-09 07:41