Lim*_*ime 6 javascript google-chrome
单击Google Chrome中的链接时,焦点事件无法触发.所有其他浏览器都会触发链接的焦点事件.
<a href=# onfocus="console.log('focus')">Link</a>
Run Code Online (Sandbox Code Playgroud)
我不想把这个事件附在onmousedown上,而是onfocus.
任何人都有一个解决方法的想法.
编辑:
我肯定会认为这是一个错误,因为所有其他可聚焦元素都会引发关注点击.
即使是具有tabindex触发器的非焦点元素也专注于谷歌浏览器中的点击.
<div tabindex="-1" onfocus="console.log('focus')">div</div>
Run Code Online (Sandbox Code Playgroud)
我无法附加到两者click,focus因为然后onclick,其他浏览器会调用该函数两次.我无法检测到这个功能,因为它需要用户交互,我不会做用户代理字符串检测,因为它错了.
使用这个HTML:
<a href=# onfocus="console.log('focus')" onmousedown="console.log('mousedown')">Link</a>
Run Code Online (Sandbox Code Playgroud)
它们是否可以使第二个onmousedown调用无效,以防止在非谷歌浏览器中调用该函数两次.
编辑2:
经过一些进一步的测试<input type=radio>也无法在谷歌浏览器中调用焦点.为什么世界上有像这样的谷歌浏览器,而Opera,IE和Firefox都可以.令人疯狂的是,当我在Android设备上试用它时,移动webkit浏览器甚至会引发对链接的关注.
focus为了避免在工作浏览器上弹出双重事件,同时仍然让focus事件在 Chrome 上弹出,您可以采取的一种解决方法是在单击事件上检查focus页面上是否有任何内容,如果没有,则触发该focus事件。
使用 jQuery 可以这样完成:
$('a').click(function(e){
if(!$('*:focus').length) $(this).trigger('focus');
});
Run Code Online (Sandbox Code Playgroud)
示例: http: //jsfiddle.net/niklasvh/qmcUt/
| 归档时间: |
|
| 查看次数: |
1842 次 |
| 最近记录: |