#66682025年12月4日作者 msftedad2 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Edge(版本 143.0.3650.46)、Chrome(版本 143.0.7499.41) 可复制演示链接 https://grapesjs.com/demo 描述一下那个虫子 测试环境: 操作系统:Windows 11 版本 25H2(系统构建 26220.7271) 浏览器:Edge(版本143.0.3650.46)、Chrome(版本143.0.7499.41) 屏幕阅读器:NVDA(2025.3.1),JAWS(2025.2508.120) 网址:https://grapesjs.com/demo 用户影响: 屏幕阅读器用户无法识...
ClaudeCode
谢谢你举报,@msftedad。 Windows中iframe未定义可访问名称的问题。似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更...
#66662025年11月28日作者 lexoyo2 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Firefox 137.0 和 Chrome 136.0.7103.92 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞? 打开官方演示版 [https://grapesjs.com/demo.html](https://grapesjs.com/demo.html) 要重现完全相同的结构,将此 JSON 粘贴到 localStorage > 'gjsProject': '''json {“assets”:[],“styles”:[{“selectors”:[“#ixix”],...
pierodetomi
我可以确认我遇到了同样的问题,原因是消失元素的计算高度是“0px”(因为它使用了display: none)。 虽然这确实是个bug,但作为临时变通,你可以在编辑器中避免在该节点使用“display: none”,而是使用一种“等效”的隐藏风格,保持元素在布局中但不可见,例如“visibility: hidden;指针事件:无;高度:1px'(1px高度是排序操作后实际保持元素在编辑器中的高度)。 这显然只是在根本问题解决前的权宜之计。
ClaudeCode
谢谢你举报,@lexoyo。 关于图层面板:拖放会让物品消失(Firefox和Chrome)的好问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log...
#66632025年11月26日作者 lexoyo4 个回答
这里有一段展示这个bug的视频: https://github.com/user-attachments/assets/0fdc76ed-cee5-4481-98b1-cbbf52572b31 GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Firefox 最新版和 Chrome v141.0.7390.122 可复制演示链接 https://canary.silex.me/ 如果需要,我可以用小提琴或代码笔,或者你也可以用 https://canary.silex.me 复刻(你需要 gitlab.com 账号),不需要设置,bug会立即复制 甚至更简单,不用 gitlab.com 账号...
lexoyo
哦,如果你告诉我应该重点解决什么方案(比如重新连接实例的命令、像我在 silex 里做的那样用异步方法加载项目数据,我很乐意贡献......) CC @artf
artf
是的,看起来是这种加载🤔页面方式的问题 我这边(满载项目)没看到什么问题。为什么要用这种方式加载页面?
lexoyo
是的,看起来这种加载🤔方式确实有问题,我这边(满载项目)没看到问题。为什么要用这种方式加载页面? 这样可以避免主线程被阻塞太久。当用户加载真实网站时,通常会显示脚本冻结浏览器的警告。还是说有我不知道的机制可以加载这些网站?
#66232025年10月10日作者 zhengtulymGh1 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 140.0.7339.214(正式版本) (x8664) 可复制演示链接 https://codesandbox.io/p/devbox/d27l6n 描述一下那个虫子 我想基于GrapesJS创建一个自定义动态列表组件(默认为3行)。它可以绑定到数组变量,并根据数组长度动态改变容器中的行数。现在我遇到了冻结问题。复制步骤如下: 点击左侧的变量标签,创建一个长度为4的新数组变量。 [![请输入图片描述][1]][1] 回到组件标签,将动态列表容器组件拖到画布上。 选择你刚拖入的动态列表组件。右侧的样式标签页会显示一个下拉菜单,用于绑定数组变量...
ClaudeCode
谢谢你举报,@zhengtulymGh。 自定义动态列表在绑定数组并展开行以匹配长度后卡死的问题,似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这...
#65892025年8月16日作者 mohammedmoulla1 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Google Chrome v139.0.7258.128 可复制演示链接 https://codesandbox.io/p/sandbox/relaxed-payne-vt3pgc 描述一下那个虫子 如何复现这个漏洞? 在画布上添加一些元素 尝试在图层管理器中查找元素并拖动或移动它们 预期的行为是什么? 在0.20.2版本中运行得很完美 目前的行为是什么? 不能更改图层管理器树的根节点 ==> 只能更改主体 我尝试了所有方法,但都没用 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: 不,直接打开链接 行为准则 [x] 我同意遵守本项目...
ClaudeCode
谢谢你举报,@mohammedmoulla。 关于更改root后无法在layerManager中拖放元素的好问题。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log...
#65832025年8月5日作者 msftedad2 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Edge 版本 135.0.2535.51(官方构建)(64 位),Chrome 版本 135.0.6422.112(官方构建)(64 位) 可复制演示链接 https://grapesjs.com/demo 描述一下那个虫子 测试环境: 操作系统:Windows 11[版本24H2(操作系统构建版24631.3593)] Edge:版本 135.0.2535.51(官方版本)(64 位) Chrome:版本 135.0.6422.112(官方构建)(64位) 屏幕阅读器:NVDA(2024.4.2) 测试网址:https://grapesj...
artf
嘿,@msftedad网站仓库在[这里](https://github.com/GrapesJS/website),欢迎提交修复后的永久注册([file](https://github.com/GrapesJS/website/blob/main/src/app/(demos)/GrapesEditor.tsx))。我决定关闭这个问题,因为它和核心无关。
ClaudeCode
谢谢你举报,@msftedad。 Alt 值的问题在 Windows 中没有为“grapesjs”标志定义。 似乎是竞赛条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSand...
#65622025年7月9日作者 jsxOverdose3 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 138.0.7204.101 可复制演示链接 https://jsfiddle.net/u3L89ejh/1/ 描述一下那个虫子 如何复现这个漏洞? 调整图像大小 把它拖到画布上的别处 点击其中一个小蓝色缩小方块 观看图像跳跃到不同位置 预期的行为是什么? 应该留在我放的地方 如果顶部/左/右/底部的值没有单位,则将值当作“px”来处理,而不是“%”。 目前的行为是什么? 当你移动图像时,上下两侧的像素值表现良好。 但你一碰到缩放按钮,它就会切换到“%”,然后突然跳到画布上全新的位置。 行为准则 [x] 我同意遵守本项目的行为准则
artf
@jsxOverdose推送了这次新版本的修复:https://github.com/GrapesJS/grapesjs/releases/tag/v0.22.11
jsxOverdose
@artf 在新版本中,还有另一个bug:当你点击Y轴上的缩放手柄时,图片会明显变大。这是试玩版:https://jsfiddle.net/du81zL6r/
ClaudeCode
谢谢你举报,@jsxOverdose。 关于调整尺寸时元素卡扣位置错误的好问题。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something chang...
#65492025年6月25日作者 yashvi20264 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://codepen.io/Harshsne/pen/YPXdgmj 描述一下那个虫子 如何复现这个漏洞? 上传图片 将其切换为移动视图 调整图像大小  预期的行为是什么? 在样式管理器中手动更改宽度和高度时,图片会被调整大小。 目前的行为是什么? 无法调整图片大小 原因是在Canvas中调整图像大小时不会添加重要,所以原始样式不会被覆盖。 行...
mosh-tudor
@yashvi2026 那是因为你用了自定义的CSS代码。 去除这一部分: “''js 样式:'.image{最大宽度:100%;@media(最大宽度:480px) {.image {display: inline-block;高度:自动 !重要;宽度:100% !重要;最大宽度:100%;}}, `` 来自“编辑部”。BlockManager.add('image', {'
artf
我确认组件调整现在没考虑“重要”,但我大致会按照@mosh-tudor的建议来做。 你不需要去掉所有“样式”,我猜你需要的就是这个,但我觉得没必要把“!important”放在上面。如果你需要“!important”,问题很可能出在图像组件之外。
yashvi2026
我需要在风格中使用'!important'。 我注意到在其他组件中,当默认样式中包含“!important”时,通过样式管理器添加的样式也会包含“!important”,以确保它们覆盖默认样式。  所以,当在样式管理器中手动更改样式时,会添加 !important。 同样地,调整组件大小时,样式也应该加上...
#65022025年4月25日作者 jsxOverdose2 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v135.0.7049.96 可复制演示链接 https://jsfiddle.net/bqkLwt8j/ 描述一下那个虫子 当元素具有内联样式且匹配基于ID的CSS规则时,ID选择器的样式会被移除——即使内联样式不会覆盖这些属性。然而,基于类的 CSS 规则不会出现这个问题,因为它们的行为符合预期。 如何复现这个漏洞? 为特定ID添加CSS规则,例如“#frame2 { color: red; }` 添加带有该ID和内联样式的元素,例如'<div id=“frame” style=“font-size: 14px;”>'” 注...
artf
谢谢你的报告@jsxOverdose 下次版本会修复
ClaudeCode
谢谢你举报,@jsxOverdose。 关于内联风格覆盖基于ID的CSS规则,这是个很好的问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('s...
#64222025年2月27日作者 sumasal2 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 截至2025年2月27日,Chrome 133 带开发分支 可复制演示链接 克隆开发仓库截至2025年2月27日 描述一下那个虫子 如何复现这个漏洞? ...克隆仓库,构建并开始 ...在演示页面点击进入预览模式,尝试拖动组件。它是全编辑模式,画布会以半编辑模式运行,直到用预览按钮回收 预期的行为是什么? ...编辑模式下不应禁用拖曳或任何编辑功能 目前的行为是什么? ... 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: “''js 你的代码在这里 ``` 行为准则 [x] 我同意遵守本项目的行为准则
ClaudeCode
谢谢你举报,@sumasal。 关于在开发分支中,启用预览时不允许拖拽组件,但实际上是允许的,这是个很棒的建议。!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则...