重复链接通过RTE添加
问题
GrapesJS 版本
- 我确认使用最新版本 GrapesJS
你用的是什么浏览器?
铬
可复制演示链接
https://codepen.io/Harshsne/pen/xxoOyXO
描述一下那个虫子
如何复现这个漏洞?
- 使用 RTE 添加词语链接,添加链接组件
- 现在在链接组件后输入一个不留空格的词,再次选择该词,添加链接。
- 添加后,点击文本框外。
预期的行为是什么? 第二个新增链接应包裹在第一个链接和文本上。
目前的行为是什么? 新增了两链接组件。
代码
var url = window.prompt('Enter the URL to link to:');
rte.insertHTML(<a class="link" href=${url}>${rte.selection()}</a>);

行为准则
- 我同意遵守本项目的行为准则
回答(4)
点燃——唯一的坏处是我们可能永远不知道最终的修复结果。
@artf - 我觉得我们可以结束这个问题了。
我已经玩了不少,能在@yashvi2026提供的Codepen上重现出这个错误。我大多数情况下的繁殖步骤非常相似: 在文本框中输入两个单词,中间有许多空格。 双击单词或用鼠标手动选择单词,选中第一个单词 使用自定义RTE添加链接 跳出框框点击 在现有文本中的链接后双击返回 在链接后高亮单词,并用鼠标将高亮扩展为包含第一个链接的首字母 使用 RTE 添加另一个链接 点击文本框外 然而,我在开发环境中无法复现这种效果。经过多次反复试验,我发现Codepen使用的是GrapesJS v0.22.1。我把它切换到v0.22.4(Codepen能找到的最新版本),结果再也复现不了。 @yashvi20...
是的,升级到最新版本后,这个问题就不出现了。
你在使用 rte.insertHTML 时遇到的重复链接组件问题是一个常见的混淆点,但这不是 GrapesJS 或其底层 ProseMirror 编辑器的漏洞。而是 rte.insertHTML 与编辑器内置标记管理命令的操作方式相较的结果。 根本原因解释 HTML <a> 标签嵌套: 你期望的行为(“第二个添加链接应包裹在第一个链接和文本上”)未被满足的根本原因是 HTML <a>(锚)标签无法嵌套。像 <a>Link1<a>Link2</a></a> 这样的 HTML 结构是无效的。当你有相邻的文本段且都是链接时,它们自然会被表示为两个独立的相邻 <a> 标签:<a>Link1</a><...
相关问答
通过相似的问题讨论继续研究。
问题 #6494
反复创建和摧毁会判错
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://codepen.io/Harshsne/pen/QwwLjBQ 描述一下那个虫子 如何复现这个漏洞? 点击创建,然后快速且反复地摧毁。 调试时,我发现错...
问题 #6590
能够访问/删除/拖动图层管理器中锁定的组件
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 镀铬 可复制演示链接 https://codepen.io/Harshsne/pen/zxvREjB 描述一下那个虫子 如何复现这个漏洞? 拖拽文本组件 预期的行为是什么? 在图层管理器中...
问题 #5632
在撤销管理器中添加更改
GrapesJS版本 [X] 我确认使用最新版本GrapesJS 你用的是什么浏览器? Chrome v91 可复制演示链接 https://codepen.io/dhanadsp1120/pen/ExrRvOB 描述一下那个虫子 如何重现这个bug?通过调用 um.stop(...
问题 #4947
Undo manager not working properly on undoing a remove action
GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome - 版本 110.0.5481.100(官方构建)(arm64)可复制演示链接 https://codepen.io/faisal-praella/pen/ExeNwxJ描述一...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
相关教程
关于同一主题的深入指南。
教程
Introducing Search on GJS.Market
GJS.Market now has one search across everything we publish — plugins, articles, community questions, guides, authors and services. Press ⌘K from any page.
教程
如何在2026年用 GrapesJS 构建AI驱动的页面构建器
我们构建GJSDocs的经验——从简单的AI文本生成到结构化、上下文感知的视觉编辑
教程
2026年构建一个SaaS页面构建器需要多少钱?
2026年构建一个SaaS页面构建器的成本是多少?探索实际的开发成本、时间表、功能,以及使用 GrapesJS 如何降低成本
浏览插件分类
直接跳转到市场上的插件分类页面。