解析器在16.30以“mj风格”破坏
嗨,阿图尔。感谢你对葡萄的出色处理。这真的很棒。 临时方案运作得很好。如果需要,可以随时关闭,但如果能提供一种操控行为的方式,那肯定会很不错。
阅读下方完整回答 ↓问题
版本: 从16.30到现在所有Grapesjs版本都有这个问题。 你能重现演示中的bug吗?[x] 是的[ ] 不 预期的行为是什么? 以下是有效的MJML代码。在 grapesjs-mjml 上应该能正常工作。 详细描述那个漏洞 目前,如果你用 grapesjs-mjml 配合上面的代码,它会以两种方式出现故障:它会这样渲染样式:导出代码时,MJML 代码导出如下: 在这两种情况下,你都可以看到样式是用HTML编码的。 目前的行为是什么?* “mj-style”不是textNode,其内容也不能被htmlEncoded。 详细描述那个漏洞 我之所以把这条信息提交到这个仓库而不是 grapesjs-mjml,是因为:这次回归是提交 8e7f94abb0c4500cebde5a4984eca4215772cb0b 的结果。 截至本次提交,grapesjs错误地认为所有textNode都是textNode。但情况并不总是如此(比如 MJ 风格)。 你能附上截图、截屏或实时演示吗?* 
回答(4)
嗨,阿图尔。感谢你对葡萄的出色处理。这真的很棒。
临时方案运作得很好。如果需要,可以随时关闭,但如果能提供一种操控行为的方式,那肯定会很不错。
你好@emilsedgh抱歉我回复得晚了,但无论如何,我们可以考虑在这种情况下跳过逃脱,但最快的办法可能是直接将 mj 风格的方法扩展到 HTML “''js 编辑。Components.addType('mj-style', { 型号:{ toHTML() { const content = this.components().map(c => c.get('content')).join(''); 返回 '<mj-style>${content}</mj-style>''; } // ... } })
谢谢你,Emil,暂时我先结束这个,以防以后出现类似问题,我们会考虑加一个新的道具来跳过逃脱。
谢谢你举报,@emilsedgh。 截至16:30,解析器“mj风格”断裂的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:** 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原因 在报告中包含 GrapesJS 版本、浏览器和控制台错误
相关问答
通过相似的问题讨论继续研究。
问题 #5263
如果删除组件但不删除其对应样式,之后添加新组件会导致样式冲突吗?
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 最新版本的Chrome浏览器 可复制演示链接 无效 描述一下那个虫子 如何复现这个漏洞? <img width=“1666” alt=“image” src=“https://github.com...
问题 #5049
拖拽由图片和链接组成的组件时出现的问题
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 勇敢的最后版本 可复制演示链接 https://jsfiddle.net/rp7oc96v/1/ 描述一下那个虫子 嗨,亚瑟! 我正在创建一个新组件,一个链接中的图片,就像“mj-image”组件...
问题 #4529
当我们用类“xyz”调整图片大小时,页面上同一类的所有元素也会被调整大小,因为编辑器会给这些类添加css。
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 版本 104.0.5112.101(官方构建)(arm64)视频演示链接 https://d.pr/i/27EgH2描述一下那个虫子当我们调整带有“xyz”类的图片大小时,页面上所有同类元素也会被调整...
问题 #3131
将纯文本粘贴到文本组件中,会为粘贴的文本添加 <font /> 封装器
版本: 0.16.27 你能重现演示中的bug吗? [] 是的 [X] 不 预期的行为是什么? 将粘贴文本为纯文本(文本节点),不像Grapes JS在</>元素中进行打包。 目前的行为是什么? 当我把纯文本粘贴到空文本元素时,编辑器会用<font />元素包裹它。 在粘贴文本...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
相关教程
关于同一主题的深入指南。
教程
GrapesJS DevTools: A Developer Panel Inside Your Editor
If you've ever debugged GrapesJS with console.log(editor.getSelected()) and a dozen throwaway event listeners — this post is for you.
教程
How to Build a Production GrapesJS Editor: The Complete Walkthrough of Brief, Preset, Plugins, and Services
A complete walkthrough of building a production GrapesJS editor: how to choose a preset, pick plugins, and scope setup services without burning a sprint.
教程
Big Updates: TinyMCE 8 and Placeholder 2.0 for GrapesJS
In May we shipped major updates to two of our most popular GrapesJS plugins — TinyMCE Inline Text Editor and Placeholder.
浏览插件分类
直接跳转到市场上的插件分类页面。