当OS X滚动条样式发生变化时是否会触发浏览器事件?

Nev*_*vir 14 javascript macos webkit javascript-events osx-lion

OS X Lion及以上版本允许用户打开/关闭iOS风格的浮动滚动条 - 可以通过"系统偏好设置"手动打开,也可以通过插入鼠标来打开/关闭.

基于WebKit的浏览器(也许是Opera?)会立即切换它们的滚动条样式 - 当发生这种情况时是否会触发事件?(WebKit-only很好)


一些说明:

  • NSPreferredScrollerStyleDidChangeNotification当用户切换滚动条样式时,OS X将触发

  • WebKit似乎没有订阅此事件(在grepping时没有命中).

  • 我怀疑WebKit是通过NSViewBoundsDidChangeNotification事件来处理这个事件(我假设,它会触发滚动视图的内容视图).

  • WebKit的处理这个事件-[WebHTMLView _frameOrBoundsChanged],这似乎是一个潜在的重新布点点.

  • 在这个案例中也提到了这个通知WebPDFView和检查员WebNodeHighlight- 这两者似乎都没有关系.

  • -[WebDynamicScrollBarsView adjustForScrollOriginChange] 似乎表明事件可能不会被解雇(如果是这样,看到一些确认会很高兴)


轮询更改对我来说不是一个可接受的答案(性能和用户更改值后的布局跳转).

Nev*_*vir 0

从迄今为止我读到的所有内容来看,在此样式转换期间没有触发任何 DOM 事件

最结论性的示例是创建一个overflow: autodiv,然后通过 记录其所有事件(在 Safari 或 Chrome 中)monitorEvents。更改滚动条样式时不会记录任何内容。

我在这个问题上有一个开放的 webkit 错误(尽管它可能很小,我们不会看到任何变化)。