在chrome中单击时设置SelectionRange不会在第二次单击时进行选择

setSelectionRange with on click in chrome does not select on second click

本文关键字:单击 第二次 选择 行选 SelectionRange chrome 设置      更新时间:2023-09-26

我有一个函数,可以选择输入onclick的前5个字符。这适用于第一次点击。当输入框仍有焦点时,在chrome中,前5个字符内的第二次单击将删除所选内容,插入符号在单击位置闪烁。

我希望前5个字符仍处于选中状态。

这似乎是一个chrome问题,因为它在Firefox中运行良好。

这是我的小提琴:http://jsfiddle.net/valamas/3eaYq/2/

我该如何使用chrome?

我已尝试使用重置选择

sender.setSelectionRange(0, 1);
sender.setSelectionRange(0, 5);

这确实是Chromium的一个问题(也是一个两年前的问题)。要使Chrome的行为与Firefox相同,只需将doSelect的内容包装在setTimeout调用中即可:

function doSelect(sender, e) {
    setTimeout(function(){
        sender.setSelectionRange(0, 5);
    }, 0);
}

另请参阅:更新的JS Fiddle


更新:该错误现在标记为FIXED,将在Chrome 39中发布。