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

Selecting all content of text input on focus doesn't work in Microsoft Edge

我似乎 运行 遇到了一个特定于边缘的问题,select 编辑了输入字段中的所有文本。我正在使用 angular 的 ng-focus 调用控制器中的一个函数来 select 字段中的所有文本。

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

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

我还尝试了另一种 jQuery 解决方案,除了输入字段的第一个 selection 之外,该解决方案有效。之后它按预期工作并且 select 包含所有文本。

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

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

我是 Microsoft Edge 团队的一名工程师,我看到了你所指的问题。目前,您可以在短暂延迟后调用 select 方法:

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 on http://bugs.microsoftedge.com 进行跟踪。