在Safari web检查器中,除了指定的事件外,是否有可能停止所有事件?



我有一个web应用程序与内部窗格在一个外部窗口。
用户可以通过2指挤压放大内部窗格,而不需要放大外部窗口。

在Android上的Chrome上,该应用程序可以像预期的那样工作。
但是iOS设备(iPad)上的Safari,在内部窗格内放大,实际上放大了整个窗口,这不是预期的行为。

我在这里读到iphone/ipad可以触发意想不到的事件。

我想找到这个事件。
我将iPad连接到Macbook并通过Safari进行调试,从而远程调试iOS Safari web应用程序。

在Safari Web Inspector,Sources选项卡,Breakpoints部分,我添加了All Events.
当我触摸窗格时,代码按预期在ontouchstart事件上中断,这不是违规事件。

可以通过名称添加要中断的特定事件。
但是因为我不知道哪些是有问题的事件,所以我想在除ontouchstart事件之外的所有事件上进行中断。

是否可以在Safari中除指定事件外的所有事件上停止?

感谢

我不知道是否有可能在除特定事件之外的所有事件上中断。

我最近发现了这个链接,它全面地解释了Safari中的各种断点选项。
链接的作者亲切地回答了我的问题:

Currently there is no way to exclude specific events.  
In your scenario, is it really necessary to add listeners for all events, or is it a known list of specific events (e.g. all touch and mouse)?  
If it's the latter, I'd suggest just adding a global event listener breakpoint for each event other than the one event you want to exclude.  
Another option might be to configure an All Events global event listener breakpoint with a condition of something like window.event.type !== "..."  
(note that this will only work in Safari Technology Preview 114 or newer).  

注。
我的问题的原因是上游违规事件侦听器。
因为问题发生在目标事件上游的事件侦听器中,所以在除特定事件之外的所有事件上中断是没有帮助的。
我最终通过使用passive = false应用addEventListener解决了我最初的问题,并使用preventDefault()来防止在冒泡阶段触发上游事件处理程序。

相关内容

  • 没有找到相关文章

最新更新