问题 #774💬 已回答提出于 2018年1月18日作者 ryandeba0 个反应

在解析内容时模仿自定义RTE的行为

快速解答作者 ryandeba

现在我仔细想想,选项1对我来说不太适用,因为我想防止任何内嵌样式被移除,也防止任何ID/类/属性被添加到子元素中。所以我想剩下的就是选项二,或者我没想到的另一个解决方案。

阅读下方完整回答 ↓

问题

你好,@artf, 我想在调用 'editor.setComponents(“<div>这是一个文本组件”)时复制[这种行为](https://github.com/artf/grapesjs/blob/f74791da68b25d1037502a2ad06093da29e25830/src/dom_components/view/ComponentTextView.js#L69)。<span style='font-size: 20px;'>这是一个嵌套元素,我不想被解析出来。“</span></div>)`.在这个例子中,我希望嵌套的“span”不要被解析为独立组件,这样我就无法选择它或以任何方式与它交互(就像我在“div”上启用或禁用自定义RTE一样)。 我看到两个选项:调用 'editor.setComponents' 后,在外部 div 上以程序方式启用和禁用 RTE,使子元素和文本在 div 中被视为“内容”。我很确定这在不改葡萄核心的情况下就能行得通......还没试过。修改 ['ParseHtml.parseNode'](https://github.com/artf/grapesjs/blob/f74791da68b25d1037502a2ad06093da29e25830/src/parser/model/ParserHtml.js#L142) 的行为,以某种...

回答(3)

ryandeba2018年1月18日

现在我仔细想想,选项1对我来说不太适用,因为我想防止任何内嵌样式被移除,也防止任何ID/类/属性被添加到子元素中。所以我想剩下的就是选项二,或者我没想到的另一个解决方案。

artf2018年1月19日

嘿,Ryan,这个自定义组件怎么样 “''js const domc = 编辑。主导组件; const textType = domc.getType('text'); domc.addType('raw-text', { model: textType.model.extend({ },{ isComponent: function(el) { if (el.hasAttribute && el.hasAttribute('data-raw-text')) { 返回 { 类型:'raw-text', 内容:el.innerHTML, 组件:[] // 这将避免解析子节点 }; } } }...

ryandeba2018年1月19日

谢谢@artf!我猜你的建议对我有效——我会在接下来的几个小时内试试。

相关问答

通过相似的问题讨论继续研究。

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

相关教程

关于同一主题的深入指南。

全部教程 →

浏览插件分类

直接跳转到市场上的插件分类页面。