You need to enable JavaScript to run this app. Vaadin富文本编辑器格式化按钮在Safari浏览器中无法正常运行问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

Vaadin富文本编辑器格式化按钮在Safari浏览器中无法正常运行问题咨询

问题根因

该问题是macOS Big Sur预装的Safari 14及以上版本修改了contenteditable元素的Selection API行为导致的,属于Vaadin Pro富文本编辑器的已知兼容Bug,非用户使用或适配错误,仅在Safari环境下复现,Chrome、Firefox不受影响是因为这两款浏览器未修改对应选区处理逻辑。

解决方案

官方修复方案

直接升级对应Vaadin版本即可,官方已在后续版本内置了Safari选区兼容补丁:

  • 若使用Vaadin 14.x LTS系列,升级到14.7.0及以上版本
  • 若使用Vaadin 20+非LTS系列,升级到21.0.0及以上版本

临时兼容方案(无法升级版本时使用)

可自行添加选区缓存逻辑规避问题,参考代码如下:

const richTextEditor = document.querySelector('vaadin-rich-text-editor');
let lastValidRange = null;

// 缓存正常选区
richTextEditor.addEventListener('selection-change', () => {
  const selection = window.getSelection();
  if (selection.rangeCount > 0) {
    lastValidRange = selection.getRangeAt(0).cloneRange();
  }
});

// 格式操作后恢复选区
richTextEditor.shadowRoot.querySelectorAll('[part*="toolbar-button"]').forEach(button => {
  button.addEventListener('click', () => {
    if (lastValidRange) {
      const selection = window.getSelection();
      selection.removeAllRanges();
      selection.addRange(lastValidRange);
    }
  });
});

额外说明

无需针对Safari做其他特殊适配,该问题完全由Safari逻辑变更和Vaadin编辑器兼容缺失导致,升级官方修复后的版本即可彻底解决光标漂移、按钮误高亮的问题。


内容的提问来源于stack exchange,提问作者TinoK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 11:06:02