Javascript 确定输入焦点是由于自动聚焦还是由于用户交互
我的页面的第一个输入元素在焦点事件中执行操作。但是,我只想在用户由于单击、选项卡等原因故意手动聚焦框时执行此操作。我不希望浏览器的默认自动聚焦操作触发此操作 有没有办法区分这两者的区别?给定启用了Javascript 确定输入焦点是由于自动聚焦还是由于用户交互,javascript,html,focus,dom-events,onfocus,Javascript,Html,Focus,Dom Events,Onfocus,我的页面的第一个输入元素在焦点事件中执行操作。但是,我只想在用户由于单击、选项卡等原因故意手动聚焦框时执行此操作。我不希望浏览器的默认自动聚焦操作触发此操作 有没有办法区分这两者的区别?给定启用了自动对焦的元素: <input autofocus> 自动对焦不会触发对焦事件。这似乎与我看到的不一致。自动对焦未启用。它只是DOM中的第一个输入字段,因此是默认的自动聚焦字段。使用这样的标志也会让人感觉不舒服,因为即使设置了autofocus属性,字段也有可能无法自动获得焦点。如果没有a
自动对焦的
元素:
<input autofocus>
自动对焦不会触发对焦事件。这似乎与我看到的不一致。自动对焦
未启用。它只是DOM中的第一个输入字段,因此是默认的自动聚焦字段。使用这样的标志也会让人感觉不舒服,因为即使设置了autofocus
属性,字段也有可能无法自动获得焦点。如果没有autofocus
属性,字段何时才能获得自动焦点?你有这样的代码吗?关于标志,具有自动对焦
的字段何时不能自动对焦?(如果多个字段都有该属性,我想这将是一个问题,但我不确定您为什么想要这样做。)
const input = document.querySelector('input');
input.addEventListener('focus', e => {
// Ignore the first, automatic focus event
if (e.target.autofocus) {
e.target.autofocus = false;
return;
}
// ... Handle user-triggered focus events ...
});