(麦克风啸叫声,背景有轻微的掌声) 各位同学,大家好! 欢迎来到今天的“浏览器地狱”特别讲座。我是你们的讲师,今天我们不聊React组件的Hooks,也不聊Redux的状态管理,我们聊聊一个更原始、更底层、更让头发掉光的领域——DOM事件兼容性。 你们有没有想过,当你写一个onClick事件,或者监听一个键盘按下时,React背后到底发生了什么?为什么有时候你点击了一个按钮,事件却跑到document上去了?为什么你按下一个字母键,有时候它告诉你“我是个功能键”,有时候它告诉你“我是‘A’”? 今天,我们要扒开React的源码,专门讲两个“补丁大师”:getEventTarget 和 getEventCharCode。它们是React用来在浏览器这个“任性的孩子”面前维持秩序的保镖。 准备好了吗?让我们开始这场穿越回IE6时代的旅程。 第一部分:幽灵目标与IE的“幽灵”属性 首先,我们要聊聊getEventTarget。这个名字听起来很直白,就是获取事件的目标。但在浏览器江湖里,“目标”这两个字,充满了欺骗性。 1. 事件冒泡的“黑洞” 想象一下,你在页面上有一个巨大的按钮,覆盖了整个 …
继续阅读“React 跨浏览器兼容:源码中 getEventTarget 和 getEventCharCode 是如何抹平不同内核差异的?”