视频布尔属性在导入时会断裂
乍一看,问题可能出在这里: https://github.com/artf/grapesjs/blob/a850a305b80b8f86c0e7e4fb92b6492c2e5a1957/src/dom_components/model/ComponentVideo.js#L115-L117 确实,在导出/导入时我本以为只是“...控制>“而不是”......controls=“controls”>'。HTML代码生成器在遇到布尔“真”值时应使用单一属性,所以第一次尝试可能是 “''js 如果 (this.get('loop')) attr.loop = true; ... ```
阅读下方完整回答 ↓问题
解释 Using https://grapesjs.com/demo.html v0.15.8 在 Chrome 77.0.3 ~ Windows 10 专业版 18362 上 使用导入模态导入带有任何布尔属性(控制、循环、自动播放)的视频组件都会破坏该组件上的所有布尔属性,直到该组件被删除。
繁殖步骤
- 导航到 https://grapesjs.com/demo.html
- 清理画布
- 拖拽“视频”块
- 确保“Controls”布尔属性被勾选(应默认)
- 打开导入码模态
- 点击导入
- 布尔属性特征不再作用于组件
- 也无法在移除布尔属性后重新导入视频
屏幕剧本 屏幕显示视频正常工作,然后出现了bug。 
回答(1)
乍一看,问题可能出在这里: https://github.com/artf/grapesjs/blob/a850a305b80b8f86c0e7e4fb92b6492c2e5a1957/src/dom_components/model/ComponentVideo.js#L115-L117 确实,在导出/导入时我本以为只是“...控制>“而不是”......controls=“controls”>'。HTML代码生成器在遇到布尔“真”值时应使用单一属性,所以第一次尝试可能是 “''js 如果 (this.get('loop')) attr.loop = true; ... ```
相关问答
通过相似的问题讨论继续研究。
问题 #4732
HTML 导入后 Tabs behaviour
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 107(MacOS) 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?将标签块拖放到编辑器内容中点击顶部的“导入”按...
问题 #4607
当带子元素移动时的 JS 错误
葡萄JS版本[x] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome v104可复制演示链接 https://grapesjs.com/demo.html描述一下那个虫子 如何复现这个漏洞?选择一个元素按住CTRL键,选择子元素尝试移动这些元素 预期的行为...
问题 #4257
背景修改对非图像无效
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v100 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?点击任意组件,在样式管理器中滚动到装饰>背景尝试制作一个带...
问题 #4173
文本元素无法正常工作
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome v98可复制演示链接 https://grapesjs.com/demo.html描述一下那个虫子 我打开了一个笔记本(Win11) 我在记事本上写了:测试 [回车] 测试 [回车] 测...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
相关教程
关于同一主题的深入指南。
教程
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
教程
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 We Built Composeit in Record Time Using GrapesJS Shadcn
Bypass foundational builder boilerplate and focus on what truly matters.
浏览插件分类
直接跳转到市场上的插件分类页面。