下面是一个代码笔,用于演示我所看到的内容: https://codepen.io/anon/pen/zMvxPy
HTML:
<input type="text" />
JS:
$('input').on('focus', () => {
console.log('focused...')
});
$('input').focus();
在Chrome上,文本输入将获得焦点,并且会触发“焦点”事件。 在Firefox(63.0.1)上,文本输入未聚焦并且焦点事件未触发。
但是,您可以单击文本输入,然后将正确触发“焦点”事件。
关于.focus()方法为什么不触发Firefox中的“ focus”事件的任何解释...?
注意:我知道调用.focus()可以通过单击按钮(例如在https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#Focus_on_a_text_field中进行)来完成,但是该示例用于在初始页面加载期间调用.focus()。
答案 0 :(得分:0)
对于遇到此问题的其他人,事实证明我打开了Firefox开发工具,并且Firefox将其重点放在页面加载上,而不是在初始渲染期间调用了.focus()
的任何项目。
一些观察:
.focus()
调用。 .focus()
中调用ngAfterViewInit()
也会被Firefox最初对开发者控制台的关注所覆盖。