Sha*_*isM 8 google-chrome passive-event-listeners angular
令人震惊的是,互联网上关于这个话题的内容却是空洞的how to make an event listener passive in Angular。
我有一个下拉菜单,当滚动时,它会在 Chrome: 中抛出错误
[Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive...。
谷歌抛出这个错误的动机以及问题本身对我来说非常清楚,而且我知道解决方案。我需要在我的 Angular 代码中做这样的事情:document.addEventListener('wheel', (e) => { e.preventDefault() }, { passive: false });但似乎解决方案比我想象的更难实现。Angular 没有办法将事件侦听器设置为{passive: false},而且我上面粘贴的普通 JS 根本不起作用。
有人遇到过类似的问题/解决方案吗?也许有解决方法?任何相关信息都可能很有价值,谢谢。
小智 4
如https://angular.io/guide/event-binding#binding-to-passive-events中指定:
(window as any)['__zone_symbol__PASSIVE_EVENTS'] = ['scroll'];
Run Code Online (Sandbox Code Playgroud)
可以添加到polyfills中,这将使滚动事件的事件监听器变成被动的
| 归档时间: |
|
| 查看次数: |
5879 次 |
| 最近记录: |