HTML元素的ID会在projectData加载的不同页面上递增
问题
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Firefox 109 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 你好, 我注意到当我在 projectData 中加载多个 HTML 中使用相同“id”的页面时,葡萄会自动在每个页面上增加“id”,尽管这些是不同的页面。 为了演示这个问题,下面有一段代码,我用包含两个页面的“projectData”初始化 grapesjs,这两个页面在某些 HTML 标签上使用相同的 ID。 在最终的HTML列表中,你可以看到像“body”和“main-title”这样的id在第二页被递增为“body-2”和“main-title-2”。 “''js const editortest = grapesjs.init({ 无头:确实如此, projectData: { 页码:[ { “框架”: [ { “组件”: { “类型”:“包装器”, “可时尚”:[ “背景”, “背景色”, “背景图像”, “背景重复”, “背景-附着”, “背景位置”, “背景大小” ], “属性”:{ “身份”:“身体” }, “组件”: [ { “tagName”: “section”, “组件”: [ { “tagName”: “h1”, “type”: “text”, “属性”...
回答(4)
嘿,@bgrand-ch,我认为有一天所有Grapesjs实体都会有一个全局“UID”,所以从长远来看,我预计这个问题会被修复 🤞
起初,我想把所有页面一起生成,这样所有页面都能输出一个统一的CSS输出。但现在我尝试另一种风格方案。
所以对于“id”问题,分别生成每个页面可能是解决方案。谢谢你的建议。
Grapes 使用一些数据属性(类似“data-grapes-id”)作为唯一标识符,以便让 id 留给某些前端脚本使用。
我喜欢这个想法 💯
谢谢你举报,@quentin-bettoum。 在 projectData 加载的不同页面上 HTML 元素 ID 递增的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:** 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原因 在报告中包含 GrapesJS 版本、浏览器和控制台错误
相关问答
通过相似的问题讨论继续研究。
问题 #3579
在放置“activeOnRender”组件后立即打开RTE时丢失了
版本: 0.17.4 你能重现演示中的bug吗?[x] 是的[ ] 不 繁殖步骤:前往[演示](https://grapesjs.com/demo.html)在画布内放置一个“文本”方块点击刚刚丢弃的“文本”组件打开的RTE丢失了位置(参见[附图](https://user-i...
问题 #5378
未捕获类型错误:在图层管理器面板拖动组件时无法读取未定义属性(读取“Canvas”)。
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v116.0.5845.97 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?从画布中选择任意组件打开图层管理器面板...
问题 #4848
内联编辑后,组件内容被设置为空字符串
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Firefox v91.4.1 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?访问 grapesjs 基础演示:https://...
问题 #4537
RangeError 最大呼叫堆栈大小超过。
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 勇敢 1.33.105 铬:96.0.4664.93 可复制演示链接 https://codesandbox.io/s/relaxed-mccarthy-v2e37w 描述一下那个虫子 如何复现这...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
相关教程
关于同一主题的深入指南。
教程
Vanilla GrapesJS vs GrapesJS With Plugins: What You Actually Get Out of the Box (2026)
New to GrapesJS? See exactly what the stock editor gives you, where it falls short, and which plugins close the gaps — a beginner-friendly 2026 comparison
教程
Lighthouse for GrapesJS: Audit Accessibility and SEO Without Leaving the Editor
Live WCAG 2.1/2.2 accessibility auditor + SEO manager for GrapesJS. Every finding is bound to the exact component — click to select, then one-click fix.
教程
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.
浏览插件分类
直接跳转到市场上的插件分类页面。