应该先模糊或滑鼠下火
Should blur or mousedown fire first?
本文关键字:模糊 更新时间:2023-09-26
<!doctype html>
<body>
<input onblur="alert('b');">
<button onmousedown="alert('m');">a</button>
</body>
由于某些原因,blur似乎在Firefox/IE上首先触发(但mousedown似乎在Chrome/Safari上首先触发)。
但是当我们把代码改成这样:
<!doctype html>
<body>
<input onblur="document.title+='b';">
<button onmousedown="document.title+='m';">a</button>
</body>
现在由于某种原因,所有浏览器似乎都是先按下鼠标。
这种异常的原因是什么?
基于W3C规范,标准行为应该是什么?
对于这个测试,我设置为fiddle
<input onblur="document.getElementById('msg').innerHTML+=new Date().getTime()+' - blur<br/>'">
<button onmousedown="document.getElementById('msg').innerHTML+=new Date().getTime()+' - md<br/>'">a</button>
<div id="msg">---<br/></div>
在Windows XPsp3,在Fx5, IE8, Opera 11, Safari5, Chrome 13它是所有鼠标先下,模糊后
更新:除非你使用警报。如果你在某个地方放了一个警告,你就不能指望任何东西都按照你想要的方式工作。
例如,一些(较旧的)浏览器会进入一个永无止境的循环,如果你提醒一个错误的onblur,然后试图关注违规字段,然后模糊空的下一个字段
天哪,真是个没完没了的故事。我不想知道我花了多少时间才弄明白那个行为。正如你提到的,它的行为不同,所以实际上没有"正确"。然而,我不太了解关于这个特定实例的W3C规范(如果真的有的话?),但是要知道,您必须创建一些逻辑以使事物以正确的顺序触发。
相关文章:
- 模糊事件的Javascript测试
- 将事件聚焦/模糊在可编辑内容的元素上
- 如何像模糊图像一样模糊iframe
- 奇怪的日期选择器行为,与模糊有关
- 角度ui选择标记模糊时丢失文本输入
- 为什么我的.blur()代码只处理第二个模糊
- Primefaces编辑器模糊事件
- jQuery模糊时验证文本字段
- 角度指令中的模糊无法正常工作
- 如何通过css模糊除当前悬停之外的所有图像
- ContentEditable Div模糊事件
- MVC-模糊事件的远程验证
- 密码模糊事件未显示
- AngularJS内容可编辑模糊输入
- 如果模糊事件的任何一个子项获得焦点,请阻止启动模糊事件
- Javascript:联合焦点模糊
- 为什么不'当使用模糊时,点击工作
- 在模糊 javascript 上格式化为 hh:mm 输入
- 在Sinatra(ruby)中实现JS模糊搜索
- 使用 GSAP 对模糊滤镜进行动画处理