选择焦点上文本输入的所有内容在 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 进行跟踪。
我似乎 运行 遇到了一个特定于边缘的问题,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 进行跟踪。