Firefox有一种行为,如果你单击一个可滚动的div
,那么该div会响应所有鼠标滚轮和Page Up / Down键,从而有效地使其“聚焦”。但是,从技术上讲,HTML5规范要求divs
不能“专注”。因此,即使div
收到键盘和鼠标事件,也不会在document.activeElement
或DOMActivate
事件处理程序中报告。
那么如何检测可滚动的div
何时在Firefox中滚动焦点?这是一个test page。奇怪的是,div
在document.activeElement
中报告时会显示{/ 1}} ,但这是唯一发生的时间。解决方法可能是收听click
和scroll
事件,但我不确定这是否是最佳解决方案?
编辑:这是针对Firefox扩展,因此任何chrome级别的JS都是可以接受的。这也意味着我无法编辑或预测某些页面的编码方式。
答案 0 :(得分:10)
如果您为<div>
分配tabindex
属性/属性(可以将其设置为0
,使其可以在文档的正常流程中进行焦点调整,或-1
要将其从普通标签流中完全删除,那么它可以触发focus
和blur
个事件。如果你发现它不合适,一些简单的CSS可以消除outline
,但出于可用性原因,这可能是合乎需要的。