在解析内容时模仿自定义RTE的行为
现在我仔细想想,选项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)
现在我仔细想想,选项1对我来说不太适用,因为我想防止任何内嵌样式被移除,也防止任何ID/类/属性被添加到子元素中。所以我想剩下的就是选项二,或者我没想到的另一个解决方案。
嘿,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, 组件:[] // 这将避免解析子节点 }; } } }...
谢谢@artf!我猜你的建议对我有效——我会在接下来的几个小时内试试。
相关问答
通过相似的问题讨论继续研究。
问题 #3175
选择和激活RTE在程序化移除组件时未被清除
版本: 0.16.30 你能重现演示中的bug吗? [x] 是的 [ ] 不 繁殖步骤:在演示画布中选择文本组件选择框和RTE出现打开控制台执行 'editor.setComponents('');'组件被移除,但选择框和RTE仍然存在(见附图) 预期的行为是什么? 当程序性移...
问题 #1137
不能让文本块既不可编辑又可样式化!
演示/重现问题 https://jsfiddle.net/shareefhiasat/u8Lodyh7/1/ 问题 不确定是bug还是我不知道怎么获得想要的行为 预料中 我需要类似文本元素的元素,并且能够样式化,但不能更改内容(文本) 真实的与我尝试过的 我尝试过维基和文档里的...
问题 #1614
:将css变量添加为style manager属性
尝试向样式管理器添加CSS变量导致错误: “未捕获类型错误:无法读取未定义[fiddle](https://jsfiddle.net/GCoda/ke3p0mgj/)的属性'toPerCase' “JavaScript 编辑。StyleManager.addSector('te...
问题 #1421
:面板按钮视图中,“禁用”而非“active”类
你好 我猜禁用面板按钮时职业有个bug。 https://github.com/artf/grapesjs/blob/dev/src/panels/view/ButtonView.js#L22
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
相关教程
关于同一主题的深入指南。
浏览插件分类
直接跳转到市场上的插件分类页面。