在谷歌浏览器中,当单击链接时,焦点事件无法触发。所有其他浏览器都会为链接触发焦点事件。
<a href=# onfocus="console.log('focus')">Link</a>
我不想在mousedown上附加事件,而是在focus上。有没有绕过的办法。
编辑:
我肯定认为这是一个错误,因为所有其他可聚焦元素都会在单击时触发焦点。
即使是具有tabindex的非可聚焦元素在Google Chrome中也会在单击时触发焦点。
<div tabindex="-1" onfocus="console.log('focus')">div</div>
我不能同时绑定click
和focus
,因为在onclick时,其他浏览器会调用该函数两次。我不能检测此功能,因为它需要用户交互,并且我不会进行用户代理字符串检测,因为这样做是错误的。
使用以下html:
<a href=# onfocus="console.log('focus')" onmousedown="console.log('mousedown')">Link</a>
是否有办法使第二个 onmousedown
调用失效,以防止在非谷歌浏览器中函数被调用两次。
编辑2:
经过进一步测试,<input type=radio>
在谷歌浏览器中也无法调用焦点。
为什么谷歌浏览器会这样,而 Opera、IE 和 Firefox 都没问题。令人惊讶的是,当我在 Android 设备上测试时,移动 WebKit 浏览器甚至会触发链接的焦点。
alert()
关联动作的注释。此外,“triggering”是正确的拼写... ;) - Jared Farrish