问题 #3316💬 已回答提出于 2021年3月5日作者 am1rb1 个反应

编辑器不会移除死稿块

快速解答作者 Ju99ernaut1

我无法复现这个,也许你能提供更多关于自定义组件的信息,无论如何我怀疑这是存储相关的问题。你是先存储然后加载生成的HTML页面吗?

阅读下方完整回答 ↓

问题

版本: 0.16.34 你能重现演示中的bug吗? [ ] 是的 [x ] 不 据我了解,导入代码对话框跳过了所有HTML脚本,所以我无法在演示中重现这个问题 预期的行为是什么? 编辑者必须先移除失效脚本块,才能在生成的HTML末尾添加新的脚本块 详细描述那个漏洞* 我在项目中用脚本(https://grapesjs.com/docs/modules/Components-js.html)定义了一个组件。当我将这个组件添加到编辑器并保存模板时,编辑器生成 HTML,并在正文末尾附加一个脚本块以启动相关组件。 输出的HTML大致是这样的: '''html <head> <!-- 生成的 HTML --> <script>/ 附加的脚本块用来启动我的自定义组件 /</script> </head> 如果我重复这种行为,它会在模板里附加一个新的脚本块,导致最终模板上有很多死代码。 '''html <head> <!-- 生成的 HTML --> <script>/ 死剧本1 /</script> <script>/ 死剧本2 /</script> <script>/ .... /</script> <script>/ 一个新脚本块来启动我的自定义块 */</script> </head> ```

回答(4)

Ju99ernaut2021年3月6日

我无法复现这个,也许你能提供更多关于自定义组件的信息,无论如何我怀疑这是存储相关的问题。你是先存储然后加载生成的HTML页面吗?

Andrew-Chen-Wang2021年3月5日

通常内联脚本会放在正文底部。试着把它放那里?

am1rb2021年3月5日

我自己不添加任何内容。编辑器会在生成的HTML末尾添加与组件相关的脚本,并添加一个新的脚本标签。 请查看这个文件: https://github.com/artf/grapesjs/blob/dev/src/editor/model/Editor.js#L513 我觉得这里可能有问题。编辑器会添加新的脚本块,但不会移除旧的。

ClaudeCode2026年5月17日

谢谢你举报,@am1rb。 编辑器未移除死脚本块的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原因 在报告中包含 GrapesJS 版本、浏览器和控制台错误

相关问答

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

问题 #5768

BlockProperties 中“content”属性的类型错误

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v122 可复制演示链接 不适用 描述一下那个虫子 GrapeJs 文档表明,可以在块的“content”属性中添加混合内容(见 https://grapesjs.com/docs/...

1 个回答更新于 2024年3月21日

问题 #4384

Index.d.ts说组件必须是Backbone.Collection,<Component>但文档上说Component[]也被接受

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 任何可复制演示链接 https://grapesjs.com/docs/modules/Components.html#component-definition描述一下那个虫子 如何复现这个漏洞?ht...

1 个回答更新于 2022年6月18日

问题 #3463

检查员溢出故障

警告 请阅读并遵循接下来的三步,然后在发布问题前删除它们遵守贡献指南 https://github.com/artf/grapesjs/blob/master/CONTRIBUTING.md先快速搜索一下,看看有没有人没开同样的问题所有相关陈述/问题都必须填写/回答,否则问题可...

4 个回答更新于 2023年7月26日

问题 #3511

命令 core:component-enter 在所有情况下都无法正常工作

警告 请阅读并遵循接下来的三步,然后在发布问题前删除它们遵守贡献指南 https://github.com/artf/grapesjs/blob/master/CONTRIBUTING.md先快速搜索一下,看看有没有人没开同样的问题所有相关陈述/问题都必须填写/回答,否则问题可...

2 个回答更新于 2021年6月12日

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

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

全部教程 →

浏览插件分类

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