检测可滚动div在Firefox中“聚焦”的时间?

时间:2011-05-27 01:05:28

标签: javascript firefox dom html scroll

Firefox有一种行为,如果你单击一个可滚动的div,那么该div会响应所有鼠标滚轮和Page Up / Down键,从而有效地使其“聚焦”。但是,从技术上讲,HTML5规范要求divs 不能“专注”。因此,即使div收到键盘和鼠标事件,也不会在document.activeElementDOMActivate事件处理程序中报告。

那么如何检测可滚动的div何时在Firefox中滚动焦点?这是一个test page。奇怪的是,div document.activeElement中报告时会显示{/ 1}} ,但这是唯一发生的时间。解决方法可能是收听clickscroll事件,但我不确定这是否是最佳解决方案?

编辑:这是针对Firefox扩展,因此任何chrome级别的JS都是可以接受的。这也意味着我无法编辑或预测某些页面的编码方式。

1 个答案:

答案 0 :(得分:10)

如果您为<div>分配tabindex属性/属性(可以将其设置为0,使其可以在文档的正常流程中进行焦点调整,或-1要将其从普通标签流中完全删除,那么它可以触发focusblur个事件。如果你发现它不合适,一些简单的CSS可以消除outline,但出于可用性原因,这可能是合乎需要的。