PageKit — 可自托管的 GrapesJS 建站工具,附完整源码。 获取抢先体验

问题 #6570💬 已回答提出于 2025年7月20日作者 nanto0 个反应

Parser ignores 'parser.optionsHtml.keepEmptyTextNodes' 选项

快速解答作者 GJS Helper

你准确地发现了GrapesJS中keepEmptyTextNodes选项处理方式的差异,导致HTML输出中被剔除换行。这确实是与解析器配置及其TypeScript定义相关的bug。 根本原因 GrapesJS HTML 解析器(特别是 ParserHtml 模块)设计为直接从顶层 parser 配置对象读取 keepEmptyTextNodes 选项,而非从 parser.optionsHtml中读取。 当你初始化GrapesJS时,你提供的parser对象作为配置传递给内部ParserHtml实例。ParserHtml模块随后检查this.config.keepEmptyTextNodes,决定是否保留空文本节点(包括空白和换行...

阅读下方完整回答 ↓

问题

GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrom v140.0.7307.0 (金丝雀) 可复制演示链接 https://jsfiddle.net/y3gr69s4/ 描述一下那个虫子 如何复现这个漏洞? 创建编辑器实例,使用 'parser.optionsHtml.keepEmptyTextNodes' 选项集 'true'。 “''js const editor = Grapesjs.init({ 解析器:{ optionsHtml: { keepEmptyTextNodes: true, }, }, }); 获取HTML代码。 “''js const result = editor.getHtml(); 目前的行为是什么? 元素之间的换行从生成的HTML代码中被剔除。 '''html <body><p>福巴</p><p>尔</p></body> 行为准则 [x] 我同意遵守本项目的行为准则

回答(1)

GJS Helper2026年5月17日

你准确地发现了GrapesJS中keepEmptyTextNodes选项处理方式的差异,导致HTML输出中被剔除换行。这确实是与解析器配置及其TypeScript定义相关的bug。 根本原因 GrapesJS HTML 解析器(特别是 ParserHtml 模块)设计为直接从顶层 parser 配置对象读取 keepEmptyTextNodes 选项,而非从 parser.optionsHtml中读取。 当你初始化GrapesJS时,你提供的parser对象作为配置传递给内部ParserHtml实例。ParserHtml模块随后检查this.config.keepEmptyTextNodes...

相关问答

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

问题 #4601

在切换某些目标时,添加到样式管理器的自定义类型 update() 不再被触发。

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬104 可复制演示链接 https://jsfiddle.net/aw8p0h9j/ 描述一下那个虫子 如何复现这个漏洞?打开 jsfiddle 链接。点击两个div之间,然后在任一d...

4 个回答更新于 2022年9月25日

问题 #4191

我们正在尝试在 Angular 10 应用中存储 grapesJS 编辑器中的数据,但出现了 CORS 错误,附上了下面的图片

GrapesJS 版本 [x] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome 99.0.4844.5 可复制演示链接 https://jsfiddle.net/ct5r4kvg/ 描述一下那个虫子 如何复现这个漏洞?集成到 Angular 10 应用...

4 个回答更新于 2022年3月14日

问题 #5049

Problem when dragging component composed by image and link

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 勇敢的最后版本 可复制演示链接 https://jsfiddle.net/rp7oc96v/1/ 描述一下那个虫子 嗨,亚瑟! 我正在创建一个新组件,一个链接中的图片,就像 mj-ima...

4 个回答更新于 2023年4月18日

问题 #3176

'setStyle' 和 'setComponents' 选项参数未被考虑

版本: 0.16.30 你能重现演示中的bug吗? [x] 是的 [ ] 不 繁殖步骤:打开控制台执行 'editor.setComponents('', {avoidStore: true});'执行 'editor.setStyle('', {avoidStore: tru...

4 个回答更新于 2021年1月28日

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

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

全部教程 →

浏览插件分类

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