组件更改后刷新DOM树的功能
我已经解决了我的问题。 关键代码是“rte:disable”事件,当富文本编辑器(rte)关闭时触发。 还有一点很重要,它被编辑的内容不在组件模型中,只在其视图里,所以你必须用这些内容刷新模型。 相关代码如下: 'editor.on('rte:disable', (componentView) => { const model = componentView.model; const innerHTML = componentView.$el[0].innerHTML; const contentModel = model.get('content'); if (contentModel !== innerHTML) { mode...
阅读下方完整回答 ↓问题
你好。 我正在用这款神奇的软件开发一个网站。现在,我正在定制编辑器,发现了一个无法继续的任务。 我用的是ckeditor插件,效果正常。在 ckeditor 工具栏里,我有选项在文本内嵌插入图片。它运行得很好,但问题是我希望 GrapesJS 能像往常一样识别这张图片作为组件(我在 GrapesJS 里也有图像组件和块块),比如文本版本完成后。 其理念是在版本(由 ckeditor 插入的图片)完成后(如果可能的话)刷新 de component DOM。 我查过 API,但没找到任何能刷新组件 DOM 的函数,让 GrapesJS 知道图像组件。 最后一点,如果我把内容保存到数据库并重新加载,GrapesJS 会加载整个 DOM,而图片就是一个 GrapesJS 组件。 有没有函数可以逐个刷新组件树? 如果我在ckeditor上插入段落,在GrapesJS上把段落作为组件,也会出现同样的问题。在数据库保存并重新加载后,段落会被识别为组件。
提前感谢大家。
回答(2)
我已经解决了我的问题。 关键代码是“rte:disable”事件,当富文本编辑器(rte)关闭时触发。 还有一点很重要,它被编辑的内容不在组件模型中,只在其视图里,所以你必须用这些内容刷新模型。 相关代码如下: 'editor.on('rte:disable', (componentView) => { const model = componentView.model; const innerHTML = componentView.$el[0].innerHTML; const contentModel = model.get('content'); if (contentModel !...
@qtarant看看[#2537评论](https://github.com/artf/grapesjs/issues/2537#issuecomment-580167660) 干杯!
相关问答
通过相似的问题讨论继续研究。
问题 #2998
在[寻求帮助]中插入HTML+CSS内联
我在 grapesjs 里内置了漂亮的ckeditor 4编辑器,包含以下组件: grapesjs: 0.15.8 grapesjs-preset-newsletter: 0.2.20 ckeditor.js:4 grapesjs-plugin-ckeditor - 0.0.9...
问题 #5460
从“pageManager”加载“组件”和“样式”
GrapesJS版本[X] 我确认使用最新版本GrapesJS你用的是什么浏览器? Chrome v117.0.5938.149可复制演示链接 https://jsfiddle.net/9oLrsvya/描述一下那个虫子 如何复现这个漏洞?请查看jsfiddle中的pageMa...
问题 #4435
Pages Manager
GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome 最新版本可复制演示链接 暂时没有描述一下那个虫子 如何复现这个漏洞?创建包含Pages API函数的页面管理器测试select函数(如果你脑子里有东西,它会消失;如果你重新添加...
问题 #3231
How to change gjs-ckeditor-format component
大家好, 我们都知道 GJS-CKeditor-plugin 是处理 [data-gjs-type]=“text” 组件的。 我想知道,我们能不能改变这个选项? 我想自己创建一个自定义组件,比如 [data-gjs-type]=“anyDiv”,并且拥有类似的功能 [data-...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
浏览插件分类
直接跳转到市场上的插件分类页面。