选择焦点上输入的所有文本内容在Microsoft Edge中不起作用

时间:2016-07-20 17:28:07

标签: javascript jquery angularjs microsoft-edge textinput

我似乎在选择输入字段中的所有文本时遇到了特定于Edge的问题。我正在使用角度焦点调用控制器中的函数来选择字段中的所有文本。

function selectAllTextOnFocus($event) {
    $event.target.select();
}

除Microsoft Edge之外的所有浏览器都可以正常工作,它不会在输入字段中选择文本。

除了第一次选择输入字段外,我还尝试了另一种jQuery解决方案。之后,它按预期工作,并选择所有文本。

$('input').on('focus', function (e) {
    $(this).one('mouseup', function () {
        $(this).select();
        return false;
    }).select();
});

这只是Microsoft Edge的已知问题,还是我遗漏了什么?

1 个答案:

答案 0 :(得分:6)

我是Microsoft Edge团队的工程师,并查看您所指的问题。目前,您可以在短暂延迟后调用选择方法:

function selectAllTextOnFocus($event) {
    // See https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8229660/
    if ( navigator.userAgent.match(/Edge\/(13|14|15|16|17)/) ) {
        return setTimeout( $event.target.select.bind( $event.target ), 10)
    }
    $event.target.select();
}

在此测试两种方法:https://jsfiddle.net/jonathansampson/xe9x9s7b/

我冒昧地在a public bug上提交http://bugs.microsoftedge.com进行跟踪。