首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >火狐63 - .focus()不触发文本输入的“焦点”事件

问火狐63 - .focus()不触发文本输入的“焦点”事件
EN

Stack Overflow用户
提问于 2018-11-06 15:39:14
回答 1查看 557关注 0票数 2

这里有一个代码库来演示我所看到的:https://codepen.io/anon/pen/zMvxPy

HTML:

代码语言:javascript
复制
<input type="text" />

联署材料:

代码语言:javascript
复制
$('input').on('focus', () => {
  console.log('focused...')
});

$('input').focus();

在Chrome上,文本输入将接收焦点,并触发“焦点”事件。在Firefox (63.0.1)上,文本输入没有焦点,焦点事件也没有触发。

但是,您可以单击文本输入,“焦点”事件将正确启动。

对于为什么.focus()方法不触发火狐中的“焦点”事件有任何解释吗?

注意:我知道调用.focus()是通过类似于按钮单击(如在field中)的方式工作的,但是这个示例用于在初始页面加载期间调用.focus()。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-08 13:34:01

对于其他遇到这种情况的人,我发现我打开了Firefox工具,Firefox将焦点放在页面加载上,而不是在初始呈现过程中调用.focus()的任何项。

以下是几点意见:

  1. 在CodePen或StackBlitz等web编辑器中也可以看到这种行为。Firefox优先调整编辑器窗格的焦点,而牺牲代码本身中的任何初始.focus()调用。
  2. 在一个有角度的应用程序中,即使在ngAfterViewInit()中调用ngAfterViewInit()也会被Firefox最初关注的开发控制台所覆盖。
    • 例如,尝试在Firefox中打开和不打开开发工具的情况下打开https://angular-77iyz4.stackblitz.io。只有当开发工具关闭时,文本输入才会聚焦。在Chrome中,这并不重要。

​

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53175151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档