判断 isComposing
在移动端, 使用 event.isComposing 来判断是可行的. 但如果在 mac 上, 如果绑定了按 Enter 提交 / 换行的事件或按 Backspace 来删除整个节点, 则读取到的 event.isComposing 始终为 false. 在这种情况下, 使用 event.keyCode 来判断是否为 Composing 状态. 正常的 Enter / Backspace 的 keyCode 为其原始值, Composing 时 keyCode 为 229.
1 | const evt = (event as React.KeyboardEvent).nativeEvent; |
SVG 图像的显示
需显式指定 width 和 height, 否则元素大小为 0, 不显示.
Safari 的 bug: 删除 Composing 文字时若当前节点为空会删除当前节点
1 | const onDOMBeforeInput = (browser.isAppleMobile || browser.isMacSafari) ? (event: InputEvent) => { |