GrapesJS 问题

已收录 3,464 个 GitHub 问题 370 个已解决 · 90 个待解决 搜索、筛选并探索经过实战检验的答案。

找到 220 个问题

🔍 canvas
#42472022年4月7日作者 gustavohleal2 个回答
0 个反应

组件在克隆、移动或添加时消失或未被渲染

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 v96 可复制演示链接 https://grapesjs.com/demo-mjml.html 描述一下那个虫子 如何复现这个漏洞?添加一个单列组件选择列点击工具栏上的复制按钮重复步骤2和3,组件为两列、三列和导航栏链接,嵌入导航栏组件。移动组件或重复步骤3,第一个克隆体会出现 预期的行为是什么? 点击复制按钮时,克隆必须出现在原件的侧面。 目前的行为是什么? 克隆体不会在画布内渲染,而是出现在导出的代码中。 在从这些组件的渲染函数调试时,似乎组件渲染了几步后就消失在grapes.js的函数中。下面的视频展示了一个包含 de navbar 和 n...

artf

抱歉,demo-mjml 是一个插件,与核心无直接关联。因为我没看到组件的默认渲染器存在问题,可能和mjml渲染器有关,我也没有理由让这个问题继续存在。 尽管如此,如果有人能找到问题并且与核心有关,我愿意修复。

ClaudeCode

谢谢你举报,@gustavohleal。 关于组件在克隆、移动或添加时消失/未渲染的好问题。ProseMirror 推荐的方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('somet...

#42082022年3月22日作者 ronaldohoch4 个回答
2 个反应

每个元素的样式点击状态错误

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Brave Last 在 Chrome Last 和 Safari Last 上测试过。 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?我有个视频:https://www.loom.com/share/508e91098bf247bd93d525f2efa00a36前往演示页面选择任意元素......将状态设置为“点击”编辑任意边界半径保持元素在其他元素中点击第一个bug:界面会变成“点击”状态样式,之后又会切换到正常状态第二个bug:刷新页面,正常刷新或清除缓存,你会看到样式化的“...

artf

谢谢你的报告@ronaldohoch 这个问题将在下一个版本中修复。

ronaldohoch

@artf成功了!谢谢你 😊

ronaldohoch

@artf我没法本地运行,因为有好几个测试都没通过,你也是这样吗?我能尝试修复它们吗? 例如: ![图片](https://user-images.githubusercontent.com/2287371/160130276-227ecfa1-e1cf-459c-971d-590ae684f209.png)

#41962022年3月15日作者 shelendravashishtha24 个回答
0 个反应

在尝试用json在画布上设置组件时,ID会被更改

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 无关联 描述一下那个虫子 如何复现这个漏洞?...使用一个可以在画布上生成组件的演示 json,在属性中设置ID。...use editor.setComponents(json)...设置样式 使用 editor.setStyle() 函数,针对同一 id 元素 预期的行为是什么? ...在画布上渲染时不应该更改ID。 目前的行为是什么? ...ID正在被更改,因此样式无法实现 行为准则 [X] 我同意遵守本项目的行为准则

artf

你好@shelendravashishtha2请你具体说明步骤吗?(我需要知道你说的“json”是什么)

JonathanRiche

我见过如果你在使用 editor.setComponents() 方法之前不保存 CSS 的引用,就会出现这种情况 使用editor.setComponents()方法时,元素id选择器/引用中的所有CSS标记都会被移除 我遇到的具体步骤是把编辑器组件的引用保存成 JSON 格式 'let jsonElements = editor.getComponents().toJSON(); editor.setComponents(jsonElements) ` 使用setCom...

JonathanRiche

我想我是在用 editor.getComponents().toJSON() 找到问题的; 它会在一些组件中添加一个空的“style”:“字段,清理CSS 即 “组件”: [ { “类型”:“框” “风格”:“, “属性”:{ “id”:“ic7c” } }, { “类型”:“框” “风格”:“, “属性”:{ “id”:“if5j” } } ]

#41922022年3月11日作者 drashtibpatel2 个回答
0 个反应

DragMode:absolute/translate 时拖拽边界问题

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome,Firefox 可复制演示链接 https://jsfiddle.net/drashti/9xk5ph8j/1/ 描述一下那个虫子 我正在为我的客户使用Grape JS构建器来设置构建器和模板。为此,我想要setDragMode是“绝对或翻译”,这样可以根据这些元素并排设置。 但做完后,元素就离开了画布区域。我想像普通拖拽模式一样限制它,但位置应该绝对控制。 有没有办法限制元素进入画布区域外? 请参阅下方图片作为参考。 https://www.awesomescreenshot.com/image/23890163?key=97ac62...

artf

不,目前不可能。拖拽模式并不是公开且有文档的特性,所以我收集了所有问题和功能来支持这里:https://github.com/artf/grapesjs/issues/3770#issuecomment-944915841

ClaudeCode

谢谢你举报,@drashtibpatel。 dragMode: absolute/translate 的 drag boundary 问题似乎是竞赛条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可...

#41882022年3月9日作者 levinhtin1 个回答
0 个反应

SVG <linearGradient> 标签会<lineargradient>变成画布

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Microsoft Edge 版本 99.0.1150.30 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?我用SVG创建了一个自定义块,例如:当我把组件放进画布时,线性G渐变为线性g渐变。行为准则 [X] 我同意遵守本项目的行为准则

ClaudeCode

谢谢你举报,@levinhtin。 关于SVG <linearGradient> 标签变成canvas中的,这个问题很棒<lineargradient>。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('...

#41752022年3月3日作者 sandeepyerkala2 个回答
0 个反应

换弹时缺少偏移线

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 99.0.4844.51 可复制演示链接 https://jsfiddle.net/rakam/5o8te64y/19/ 描述一下那个虫子 如何复现这个漏洞?添加少量组件。添加后,点击右侧右侧菜单重新加载帧。缺少偏移线 请查看下面的动图 ![葡萄糖:画面重新装填](https://user-images.githubusercontent.com/47555656/156590895-2f8b094b-4833-459e-8a8e-b03efbe94e01.gif)行为准则 [X] 我同意遵守本项目的行为准则

artf

抱歉,我现在看不出支持或修复iframe原生重载的必要。

ClaudeCode

谢谢你举报,@sandeepyerkala。 关于装填帧时缺少偏移线的好问题。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something change...

#41572022年2月24日作者 Adham3803 个回答
0 个反应

调整画布大小会导致组件在导出时以“绝对”模式出现错误位置

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Microsoft edge 98.0.1108.56 可复制演示链接 https://jsfiddle.net/473b2tah/1/ 描述一下那个虫子 画布大小调整很酷,但它没有考虑到可能因为dmode而使用px偏移,也就是说,放大后的画布不会反映导出的index.html页面。导出后右侧整个区域是空的,因为图片从未被要求重新调整比例以适应导出后的版本。比如这里画布的缩放是0.85,这意味着图片应该被放大1.15倍,并相应地向右移动,但它们却卡在左边,导致右侧留下约15%的空隙。画布大小应该是大约1632像素,而导出宽度则比1920像素大15%。...

Adham380

我算是找到了一个变通办法...... 在CSS中将.gjs-frame-wrapper设置为所需宽度,然后在CSS中将iframe的“translate”(- x px, 0px)进行转换。那Canvas宽度就不对了(稍微小一点),但一切似乎都正常......不过我不会就此结案,因为作者的实现不当,正如之前所述,作者本可以非常轻松地修复这个问题。

artf

https://github.com/artf/grapesjs/issues/3770#issuecomment-1059784514

ClaudeCode

谢谢你举报,@Adham380。 *调整画布大小会导致同伴在导出dmode时出现错误位置的问题,'absolute'似乎是竞态条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeS...

#41382022年2月12日作者 yadavAtIrisdame4 个回答
0 个反应

风格管理器中的意外行为

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 版本 1.35.101 Chromium:98.0.4758.87(官方版本)(64位) ![填充声](https://user-images.githubusercontent.com/97948548/153704600-39c7336b-4837-444d-8b8c-fd48b9cb6c74.gif)可复制演示链接 https://codesandbox.io/s/strange-sun-qgdcq?file=/index.js描述一下那个虫子 如何复现这个漏洞?将组件放入 Canvas选择组件并施加一些边距和填充 预期的行为是什么? ...当我们...

artf

感谢你的报告@yadavAtIrisdame但我无法从你的演示或官方演示中复现。你能描述一下具体步骤吗?

yadavAtIrisdame

@artf 我无法重现这个bug。大多数情况下,《风格经理》的运作如预期般顺利。但突然间,他们开始表现得像(如图所示)。特别是边际和缓冲性质。 ![](https://user-images.githubusercontent.com/97948548/153704600-39c7336b-4837-444d-8b8c-fd48b9cb6c74.gif)

artf

抱歉,但很遗憾,没有合适的可复现演示,我帮不上什么忙。 如果有人能提供可重复的步骤,我很乐意帮忙解决。

#41272022年2月5日作者 jcsofts1 个回答
0 个反应

[X] 我确认使用最新版本的GrapesJS

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 版本 97.0.4692.99(官方版本)(x86_64) 可复制演示链接 不 描述一下那个虫子 如何复现这个漏洞?...... 预期的行为是什么? ... 目前的行为是什么? 在自定义代码组件中使用iframe时会出错 我把这个<iframe style=“border:none;width:100%;height:100%;overflow: hidden;” src=“https://www.google.com”></iframe> 添加到自定义代码组件,然后点击“保存”按钮 然后我遇到了低于错误的错误 ![图片](https:...

ClaudeCode

谢谢你举报,@jcsofts。 关于*的好问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')); 组件生...

#41162022年2月1日作者 saudAtIrisdame4 个回答
0 个反应

Flex Property 在样式管理器中无法正常工作

葡萄JS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 版本 1.34.81 Chromium:97.0.4692.99(官方构建)(64位) 可复制演示链接 https://codesandbox.io/s/strange-sun-qgdcq?file=/index.js 描述一下那个虫子 ![Flex属性](https://user-images.githubusercontent.com/81280927/151975071-f2b3cf48-4e1d-40f2-9248-467333d7e807.gif) 如何复现这个漏洞?创建自定义类型组件将组件放入 Canvas在样式管理器中将显示属性设置为...

Vac1911

我是在独立发现同样问题后才诊断出问题的。 正在查看“StyleManager.select()” https://github.com/artf/grapesjs/blob/75cd582a8d1a91096276bc4dccc7475a269ad45c/src/stylemanager/index.js#L339-L395 在第369行,每个属性都会被循环检查其对新目标的可见性。 然而,“checkVisibility”函数并不会通过查看目标样式来访问当前值。它会寻找存储...

saudAtIrisdame

@Vac1911 @artf 我明白了,但解决办法是什么?我该怎么解决这个问题?这是Grapej的问题还是我的?

Vac1911

@saudAtIrisdame 这似乎是葡萄的问题。我自己解决了,改了源代码,重新排序了“select”方法,最后检查可见性。 这是运行“build:js”后获得的dist文件 https://gist.github.com/Vac1911/4c89f2a48809bee5fefd2d21525d37ad “''js select(target, opts = {}) { cont { em } = this; const trgs = isArray(target) ?目...

浏览所有主题