#67362026年4月2日作者 HussainDeesa1 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 克罗姆 可复制演示链接 https://codesandbox.io/p/sandbox/hrdwnl 描述一下那个虫子 预期的行为是什么? 添加项目符号时默认应该有缩进,点击Tab键时也应该有缩进。 目前的行为是什么? https://github.com/user-attachments/assets/af5f14c4-9988-4c53-a341-5955f6ef1643 行为准则 [x] 我同意遵守本项目的行为准则
ClaudeCode
谢谢你举报,@HussainDeesa。 ProseMirror RTE 中列表/项目符号的问题,列表/项目符号不会自动缩进似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:** 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(...
#67042026年2月13日作者 mehdimoslehi2 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 版本 143.0.7499.193 可复制演示链接 https://app.rechat.com/dashboard/marketing/history/Letter?printCampaignId=28f0587d-8738-4fd6-8087-da3167f6d737&action=edit 描述一下那个虫子 如何复现这个漏洞? 打开 Rechat Studio 编辑器,尝试加载/打开这个模板:https://app.rechat.com/dashboard/marketing/history/Letter?printCam...
artf
请提供一个独立且可复现的演示,原因看起来来自你的代码逻辑,而非核心
ClaudeCode
谢谢你举报,@mehdimoslehi。 关于编辑器崩溃和模板无法加载(TypeError读取类型)的问题很棒。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => consol...
#66952026年2月2日作者 Axel3031 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Edge 144.0.3719.92 可复制演示链接 https://jsfiddle.net/L61f0qtz/ 描述一下那个虫子 如何复现这个漏洞? 在 Microsoft Edge 中打开 GrapesJS 编辑器。 添加一个键位图,用于使用 Ctrl+S 或 Ctrl+Shift+S 保存,并使用 { prevent: true }。 专注于编辑器画布(或编辑器内的任何位置)。 按下快捷键(Ctrl+S 或 Ctrl+Shift+S)。 预期的行为是什么? GrapesJS 命令console.log(“保存”)应执行。 浏览器不应打...
ClaudeCode
谢谢你举报,@Axel303。 关于防止默认不适用于Edge,这个问题很棒。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed...
#66832026年1月7日作者 derikb3 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 143.0.7499.169 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞? 将自定义代码组件拖入页面。 模态应自动打开,否则在预览中双击自定义代码组件。 在模态内点击并长按,然后将鼠标拖出模态,松开点击。 模态闭合。 预期的行为是什么? 在我看来,模态只有在模态外的全点击事件时才应该关闭。 目前的行为是什么? 模态似乎只在鼠标上行事件时关闭。 我查看了模态文件,但没有看到快速的解释说明为什么会这样。模态事件似乎都是“点击”事件......或者至少它们被标注为如...
derikb
仅供参考,我用演示页面作为可复现链接,虽然那个页面并没有使用最新版本的Grapesjs。我本地的代码用的是最新版本,也出现了同样的问题。
derikb
好的,我明白为什么会这样了。因为模态和周围背景都是包含事件的元素,所以鼠标下放、拖拽、上游标仍然被视为点击,因为它们都在同一元素上。Event.target 最终会在点击结果的位置(模态体外),并且通过了 ModalView.onClick 的测试,因此模态关闭了。 可以和Bootstrap的模态比较一下。他们把背景作为与模态体分开的元素,通过z-index放在模态体后面。这样,任何对模态体本身的点击都不会检测到背景元素上的事件,你可以在处理事件时测试 Event.curr...
ClaudeCode
谢谢你举报,@derikb。 关于模态在模态外的鼠标上行事件关闭而不是全点击时关闭的好问题。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something change...
#66752025年12月15日作者 lexoyo1 个回答
@artf 符号中带有ID的元素在不同实例中ID不同。这很合理,因为在 HTML 文档中出现多个元素同一个 ID 是不好的 第1期 在不同页面上使用符号的用户会感到困惑,因为他们“添加”到元素ID上的样式“丢失”了。你有没有想过在这个使用场景下有什么干净利落的解决办法? 第2期 另一个有问题的用例是当我有一个符号多次出现,且内侧是它 一个带有 ID 的元素 对该ID的引用,例如“<label for=”the-id“>” 解决方案 然后它坏了,就没法让它正常工作了,对吧?不幸的是,我还有其他类似的使用场景。对于这些,我想我可以在我的“grapesjs-symbols”插件里实现一个变通方法(一个符号的封装器,带UI等),它会检测到...
ClaudeCode
谢谢你举报,@lexoyo。 关于*符号和身份的好问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed'));...
#66712025年12月9日作者 padcom2 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 任何 可复制演示链接 https://github.com/padcom/grapesjs-closestType-missing 描述一下那个虫子 这个漏洞是在[这里](https://github.com/GrapesJS/grapesjs/pull/6510/files#diff-d2f42c64bd3daa0eccd626801a25b531062462a74b919d051331f9d5ba0a84e0R326 年)中引入的。在这次变化之前,一切都按预期运作。我猜是“重置”事件造成的。 更让人烦恼的是,如果你重新加载页面,唯一会看到...
padcom
事实证明,第二个参数不总是组件,而是事件的发送者,这意味着有时它是组件集合,显然没有“closestType()”方法。 谢谢@artf给我解释!
ClaudeCode
谢谢你举报,@padcom。 关于'component.closestType()'未定义的好问题。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('somet...
#66692025年12月5日作者 pierodetomi3 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞? 从一个新的编辑器实例开始,画布是空的 从块面板中,将一个“1列”块拖入画布。 从块面板中,拖拽一个“文本”块到画布中。 在图层管理器中,按顺序执行以下操作: 将文本块 移入 1列块内部。 将文本块移至1列块之外且下方(同一层级,紧邻其下方)。 将一列块移到文本块下方。 尝试再次将文本块移动到1列块下方。 预期的行为是什么? 所有拖放操作都应正确且无错误地执行。 目前的行为是什么? 在最后一个复刻步骤中,元素不会移动。 检查...
pierodetomi
我觉得问题不一样。你链接的那个里,物品会消失,而我这边的图层管理器则处于无法移动图层的状态。 它们可能在更高级层面上被称为“与分拣器相关的问题”,但据我所见,它们是两个不同的bug。
ClaudeCode
谢谢你举报,@pierodetomi。 关于层管理器中跨层重新排序方块会导致排序器错误并中断进一步移动尝试的好问题。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.lo...
#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
是的,看起来这种加载🤔方式确实有问题,我这边(满载项目)没看到问题。为什么要用这种方式加载页面? 这样可以避免主线程被阻塞太久。当用户加载真实网站时,通常会显示脚本冻结浏览器的警告。还是说有我不知道的机制可以加载这些网站?
#66592025年11月25日作者 NilLlisterri4 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Firefox 145.0(64位) 可复制演示链接 https://jsfiddle.net/arturarseniev/ta19s6go/ 描述一下那个虫子 如何复现这个漏洞? 进入官方的[Symbols演示](https://jsfiddle.net/arturarseniev/ta19s6go/),创建一个符号并更改主符号的文字颜色。实例符号不会更新。 预期的行为是什么? 符号样式应更新,如[公关视频](https://github.com/GrapesJS/grapesjs/pull/3165)所示。 目前的行为是什么? 样式不会更...
NilLlisterri
明白了,如果我想在符号里样式并分享更改,我应该给它添加类。 谢谢你们的帮助!
lexoyo
你好 这个颜色被应用到元素上,在 Grapesjs 中,这意味着它会生成一个 CSS,比如 '#compid { color: red; }但 ID 在 HTML 页面中是唯一的,因此另一个符号的 ID 不同 这对我来说也是个问题,我不确定该怎么处理......也许@artf有点想法
artf
抱歉,这不是bug,而是“功能”。 😅 依我看,组件样式不应该绑定在符号上;这是覆盖同一符号之间样式的简单方法(很常见)。如果你需要相同的风格,你只需利用这些职业。
#66552025年11月20日作者 yvoroniak-infusemedia3 个回答
https://github.com/GrapesJS/grapesjs/blob/f59e981f76ff378f59c06cf706af88e502db098e/packages/core/src/utils/ColorPicker.ts#L2407C5-L2415C6 我追溯到这些线,发现当将HEXA转换成RGBA时,这些线条会导致结果混乱。 有没有特别的理由要刻意支持传统ARGB?
artf
谢谢你的报告。这本该在这里解决 https://github.com/GrapesJS/grapesjs/pull/6672
yvoroniak-infusemedia
例如: “#ff000077”(透明红色)正在转换为“#000077”(蓝色调)。 我试过用 Monkey Patch 它,但感觉 Grapes JS 内部使用自己的实现,而不是绑定在 Windows 上的那个。(对我来说很不幸) 如果能修复这个问题或者让这些功能自由定制就好了。 谢谢。
ClaudeCode
感谢@yvoroniak-infusemedia的报道。 关于我在正确换色时遇到挑选器卡顿的问题,这个问题很棒。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log(...