在 Safari Web 检查器中,是否可以停止除指定事件之外的所有事件?
In Safari web inspector, is it possible to stop on all events except specified events?
我有一个 web 应用程序,在外部 window 内有一个内部窗格。
用户可以通过两指捏合来放大内部窗格,而无需放大外部-window.
Chrome Android,该应用按预期运行。
但是 iOS 设备 (iPad) 上的 Safari,在内部窗格中放大,实际上放大了整个 window,这不是预期的行为。
我读 here iphone/ipad 可以触发意外事件。
我想找到这个活动。
我通过将 iPad 连接到 Macbook 并通过 Safari 进行调试来远程调试 Webapp iOS Safari。
在 Safari Web 检查器中,Sources
选项卡,Breakpoints
部分,我添加了 All Events
。
当我触摸窗格时,代码在 ontouchstart
事件上按预期中断,这不是违规事件。
我可以按名称添加要中断的特定事件。
但是因为我不知道哪个是有问题的事件,所以我想中断除 ontouchstart
事件之外的所有事件。
是否可以停止 Safari 中除指定事件之外的所有事件?
谢谢
我不知道是否有可能中断除特定事件之外的所有事件。
我最近发现 this link 全面解释了 Safari 中的各种断点选项。
link 的作者亲切地回答了我的问题:
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).
p.s.
我的问题的原因是上游违规事件侦听器。
因为问题出在目标事件上游的事件侦听器中,所以它不会帮助中断除特定事件之外的所有事件。
我最终通过使用 passive = false
应用 addEventListener 并使用 preventDefault()
来防止在冒泡阶段触发上游事件处理程序来解决我原来的问题。
我有一个 web 应用程序,在外部 window 内有一个内部窗格。
用户可以通过两指捏合来放大内部窗格,而无需放大外部-window.
Chrome Android,该应用按预期运行。
但是 iOS 设备 (iPad) 上的 Safari,在内部窗格中放大,实际上放大了整个 window,这不是预期的行为。
我读 here iphone/ipad 可以触发意外事件。
我想找到这个活动。
我通过将 iPad 连接到 Macbook 并通过 Safari 进行调试来远程调试 Webapp iOS Safari。
在 Safari Web 检查器中,Sources
选项卡,Breakpoints
部分,我添加了 All Events
。
当我触摸窗格时,代码在 ontouchstart
事件上按预期中断,这不是违规事件。
我可以按名称添加要中断的特定事件。
但是因为我不知道哪个是有问题的事件,所以我想中断除 ontouchstart
事件之外的所有事件。
是否可以停止 Safari 中除指定事件之外的所有事件?
谢谢
我不知道是否有可能中断除特定事件之外的所有事件。
我最近发现 this link 全面解释了 Safari 中的各种断点选项。
link 的作者亲切地回答了我的问题:
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).
p.s.
我的问题的原因是上游违规事件侦听器。
因为问题出在目标事件上游的事件侦听器中,所以它不会帮助中断除特定事件之外的所有事件。
我最终通过使用 passive = false
应用 addEventListener 并使用 preventDefault()
来防止在冒泡阶段触发上游事件处理程序来解决我原来的问题。