微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在 Safari web 检查器中,是否可以停止除指定事件之外的所有事件?

我有一个在外窗口内有一个内窗格的 web 应用程序。
用户可以通过两指捏合来放大内窗格,而无需放大外窗。

在 Android 版 Chrome 上,该应用按预期运行。
但是 iOS 设备 (iPad) 上的 Safari,在内部窗格中放大图像,实际上放大了整个窗口,这不是预期的行为。

我读到 here iphone/ipad 会触发意外事件。

我想找到这个活动。
我通过将 iPad 连接到 Macbook 并通过 Safari 进行调试来远程调试 webapp iOS Safari。

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

我可以按名称添加要中断的特定事件。
但是因为我不知道哪个是违规事件,所以我想中断除 ontouchstart 事件之外的所有事件。

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

谢谢

解决方法

我不知道是否有可能打破除特定事件之外的所有事件。

我最近发现了 this 链接,它全面解释了 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).  

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?