4
我似乎碰到了边缘特定的问题,选择了输入字段中的所有文本。我正在使用angular的ng-focus在控制器中调用一个函数来选择字段中的所有文本。在微软边缘选择焦点上的文本输入的所有内容
function selectAllTextOnFocus($event) {
$event.target.select();
}
这个工程除了微软边缘所有的浏览器,这将不会选择在输入字段中的文本罚款。
我也试过另一个jQuery解决方案,除了第一个选择的输入字段。之后,它按预期工作并选择所有文本。
$('input').on('focus', function (e) {
$(this).one('mouseup', function() {
$(this).select();
return false;
}).select();
});
这只是一个已知的问题与边缘还是我错过了什么?
虽然这确实可以解决边缘问题,但当您有多个输入字段时,它会在chrome中导致一些意外的行为。如果您选择了一个字段,然后单击另一个窗口,然后再次单击进入Chrome时选择另一个字段,它会尝试选择两个字段的内容。这是一个[plunker](https://plnkr.co/edit/uLdJu8yl1e0FOOz1yAUD?p=preview),可以重现此问题。感谢您的快速回复,并提交错误。我会密切关注它。 –
@SpencerMeyer哦,太棒了现在,您可以使用一些用户代理检测来避免陷入这种差距。我会更新答案。 – Sampson
因为我不喜欢这个解决方案,所以我做了一个jsfiddle,并在每个浏览器中使用'setSelectionRange':https://jsfiddle.net/xe9x9s7b/11/ 另外,你不需要10ms作为超时,0是好的,它只是需要排队浏览器,据我所知 – Nicolas