NS_ERROR_FAILURE rte.exec
这是 grapesjs处理组件的方式出了问题吗?你能帮我理解一下为什么会这样,以及我该怎么做吗? 是的,这就是内置文本组件和RTE的工作原理,所以我建议你更新 result() 逻辑,添加一个检查所选组件是否是链接,如果是这样就用别的东西替换
阅读下方完整回答 ↓问题
我目前正在使用 GrapesJS 来为我的网站博客文章构建一个编辑器。我想改变默认行为的一件事是无法“解除链接”,即使用rte工具栏将已转换为超链接的文本。于是我写了以下函数: 这个功能允许你撤销链接,只要光标/选择在超链接文本中的任何位置。 我通过选择段落中的一部分文本并将其转换为超链接,方法如下(超链接按钮是RTE工具栏中最右边的按钮):  [工作案例] 正如你在左侧图层管理器中看到的,尽管选区(“GrapesJS”)已经转换成链接,但除非我点击当前文本块外,否则它不会被识别为新组件。 此时,我可以再次选择文本,并点击与超链接命令关联的按钮成功解除链接。  [失败案例] 然而,如果链接创建后我点击块外,链接会被识别为组件,并在图层管理器中显示为文本节点的子节点。 现在,如果我尝试点击链接内并按下按钮,它不起作用,反而在执行 http://unpkg.c...
回答(2)
这是 grapesjs处理组件的方式出了问题吗?你能帮我理解一下为什么会这样,以及我该怎么做吗?
是的,这就是内置文本组件和RTE的工作原理,所以我建议你更新 result() 逻辑,添加一个检查所选组件是否是链接,如果是这样就用别的东西替换
const comp = editor.getSelected();
comp.is('link') && comp.replaceWith(`${comp.get('content')}`);
这方法非常成功!谢谢!
相关问答
通过相似的问题讨论继续研究。
问题 #2189
如何在RTE/自定义块中添加“有序/无序列表”选项
嗨 我正在尝试用 grapesjs创建一个有序列表。我尝试在 RTE 中添加以下内容: 如果我的页面在编辑器初始化时预先填充了 html,这个方法就适用,比如下面: 预填充编辑器: 。它能用,我能看到代码,但当我用 editor.getHtml() 时却不行。如果我取消选中该组件(选择另一个),变更就会生效。 谢谢!
问题 #1669
自定义链接模态不会更新当前文本,而是添加带有链接的另一个文本
你好,Artur, 我正在尝试在RTE中点击链接按钮时创建一个自定义模态。但它不会把选中的文本转换成链接,而是添加了带有链接的另一个文本。 谢谢你......
问题 #3218
How to add new HTML element with inline styles?
我想在“rte.selection()”周围添加一个带有内联样式的新HTML元素。 以下面的例子来说,HTML还可以,但JSON部分可能不太行: “''js const editorRte = this.editor.RichTextEditor // ... editorRt...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
浏览插件分类
直接跳转到市场上的插件分类页面。