在onblur
中,我需要调用alert()
,但这在Chrome和Firefox中不起作用。Sess https://jsfiddle.net/mimomade/5sur482w/1/
在Firefox中,:focus-visible
在离开第二个和第四个输入字段后保留,并且不会被删除。
在Chrome中,我不能离开第二个输入字段。虽然第一个没有任何问题。
在onblur
中,我需要调用alert()
,但这在Chrome和Firefox中不起作用。Sess https://jsfiddle.net/mimomade/5sur482w/1/
在Firefox中,:focus-visible
在离开第二个和第四个输入字段后保留,并且不会被删除。
在Chrome中,我不能离开第二个输入字段。虽然第一个没有任何问题。
1条答案
按热度按时间oaxa6hgo1#
最下面是修复了两个bug的代码。你的初始JavaScript看起来像这样:
在Firefox中,您的明显错误实际上掩盖了一个类似于您在Chrome中遇到的错误。当警报被移除时,代码具有预期的行为,因此警报和事件以一种奇怪的方式交互。在这种特定的情况下,为了解决这个问题,我们可以通过将函数 Package 在零毫秒的超时中来等待事件完成。
在Chrome中,您的bug似乎是由每次关闭警报框时发出的模糊事件引起的。幸运的是,因为我们等待事件完成,所以活动元素应该是新选择的元素,而不是浏览器设置的元素。这意味着检查确保
el
和document.activeElement
不同就足以修复此错误。