发现浏览器的一个BUG,诡异的focus聚焦事件

226 阅读1分钟

发现浏览器的一个BUG,诡异的focus聚焦事件

1. 发现过程

最近在做一个文本输入框,由于测试经常点击控制台上面的东西,结果就发现输入框本身的聚焦事件有些不太正常

2. DEMO 重现

具体操作如下,先点击 input 框聚焦,然后点击任意浏览器外的地方让 input 失焦,这个时候数组中为 ['focus', 'blur']。这个时候在回到浏览器点击页面任意地方

神奇的事情发生了,input居然在没有选中的情况下触发了 focus 事件。可以看到 input 框闪了一下,数组变为了 ['focus', 'blur', 'focus', 'blur']。

按道理离开浏览器 input 已经失去焦点了,再回到浏览器也不应该再触发 foucsblur 了。

3.结语

暂时还不太清楚这个是啥情况,虽然一般情况下用户不会做这种操作,平常不注意的时候可能也不太能注意到。

但就是比较诡异,尤其是 input 加上了动画效果之后会更加明显,不太清楚为什么会有这样的 BUG,浏览器会记录上一次 focus 的对象没有清空? 还是说有事件推送被暂停了?

有懂的大佬可以说一下