#67072026年2月13日作者 saeedhbi1 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome(版本142-144)、Safari(版本16.3、26.1),可能还有其他版本 可复制演示链接 https://jsfiddle.net/saeedhbi/tqfe7p04/ 描述一下那个虫子 如何复现这个漏洞? 初始化 GrapesJS 编辑器(v0.22.11 或 v0.22.14) 在iframe完全加载前,按下键盘快捷键(例如Ctrl+Z、Delete或任意命令键) 命令系统在 iframe 准备好前调用 'Canvas.hasFocus()' 观察“类型错误:无法读取空属性(读取”hasFocus“)” 预期的行为是什...
ClaudeCode
谢谢你举报,@saeedhbi。 关于无法读取Canvas模块中null属性(读作'hasFocus')的好建议!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则...
#67052026年2月13日作者 saeedhbi3 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 所有浏览器(Chrome、Safari、Firefox、Edge) 可复制演示链接 https://jsfiddle.net/saeedhbi/tdsLa6qe/ 描述一下那个虫子 如何复现这个漏洞? 创建一个基础的GrapesJS编辑器(版本0.22.11或0.22.14) 向画布添加输入字段组件 聚焦输入场 发送一个键盘事件,其中“event.key”为“未定义”,用于IME作曲事件(主要是中文/日文/韩文键盘) 观察“类型错误:无法读取控制台中未定义属性(读为”toLowerCase“)” 预期的行为是什么? 键盘处理器应优雅地处理“e...
saeedhbi
你好@artf,在深入挖掘全栈跟踪后,我发现错误不在 GrapesJS 里。 “event.key.toLowerCase()”调用来自我们自己的应用代码——一个全局代码 'window.addEventListener(“keydown”, ...)我们在代码库中其他地方有处理程序, 与GrapesJS并行运行。因为我们的webpack构建将多个模块捆绑成同一个块 ('dist/1348'),哨兵框架具有误导性,我们错误地将来源归于GrapesJS。 GrapesJS 自...
artf
嘿,@saeedhbi,你在我们的代码里到底在哪里看到“event.key.toLowerCase()”?你确定不是你这边的吗? 可惜jsfiddle帮不上忙,感觉AI太粗糙😅,甚至连编辑器都加载不了。 也许你可以分享全栈的跟踪,看看具体发生在哪里?
ClaudeCode
谢谢你举报,@saeedhbi。 关于TypeError:无法读取键盘处理程序中未定义属性(读取“toLowerCase”)的好问题。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => c...
#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...
#65912025年8月20日作者 CES-TechAdmin2 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Mac 版 Safari 18.5 可复制演示链接 https://codepen.io/jmulik/pen/LEpdjZq 描述一下那个虫子 如何复现这个漏洞? 在Chrome中查看 https://codepen.io/jmulik/pen/LEpdjZq - 支持拖放方块。 在Safari中查看。- 无法放置和放下方块。 预期的行为是什么? 变装和变装在Safari里应该能行。就像Chrome一样。 目前的行为是什么? 在Safari中,方块的拖放功能不起作用。 观察 Safari 中的拖拽功能在 GrapesJS v0.21.13...
them7d
是的,它不能用,因为代码和Safari浏览器不完全兼容 要解决这个问题,你需要在NextJS中使用葡萄,比如这个页面 https://grapesjs.com/demo.html
ClaudeCode
感谢你举报,@CES-TechAdmin。 关于在Safari中,自v0.22.1起拖放方块功能不工作的好建议!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利...
#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...
#65822025年8月5日作者 msftedad2 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Edge:版本 135.0.2535.51(官方构建)(64 位),Chrome 版本:版本 135.0.6422.112(官方构建)(64 位) 可复制演示链接 https://app.grapesjs.com/studio?utmsource=grapesjs&utmmedium=mainTopNav 描述一下那个虫子 测试环境: 操作系统:Windows 11[版本24H2(操作系统构建版24631.3593)] Edge:版本 135.0.2535.51(官方版本)(64 位) Chrome:版本 135.0.6422.112(官方构...
ClaudeCode
谢谢你举报,@msftedad。 单指针模式操作未提供用于编辑元素拖拽操作的问题。似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识...
#63452024年12月6日作者 VanTranTrucPhuong2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 版本 131.0.6778.109(官方构建)(64 位) 可复制演示链接 https://grapesjs.com/demo-newsletter-editor 描述一下那个虫子 如何复现这个漏洞?将鼠标指针放在你想选择文本的起始位置。按住SHIFT键。将鼠标指针移动到文本选择的目标端点。 预期的行为是什么? 所选文本应自动带有高亮背景,表示已被选中。 目前的行为是什么? 所选文本没有高亮的背景。 行为准则 [X] 我同意遵守本项目的行为准则
sirbeagle
我认为我查明原因在于无法同时选择多个方块。评论 “''t” this.clearSelection(this.Canvas.getWindow()); ``` 在 [/src/editor/model/Editor.ts](https://github.com/GrapesJS/grapesjs/blob/46b3292a9682f77076ddebe6015cfa247a55a844/packages/core/src/editor/model/Editor.ts#L53...
ClaudeCode
谢谢你举报,@VanTranTrucPhuong。 关于无法选择+SHIFT来选择批量文本的好问题。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('somet...
#58912024年5月17日作者 shapley2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Firefox 125.0.3,Brave 1.66.110 可复制演示链接 https://jsfiddle.net/szLp8h4n 描述一下那个虫子 按照“git”指令在终端执行“yarn start”时安装Grapesjs: ~$ sudo apt install Nodejs NPM ~$ sudo apt install curl gnupg -y ~$ 卷发 -sS https://dl.yarnpkg.com/debian/pubkey.gpg |sudo apt-key 补充 - Echo “Deb https://dl.yarnp...
artf
谢谢@shapley,这其实和GrapesJS甚至Yarn没什么关系,你得[增加文件系统监视者](https://stackoverflow.com/a/65347277)。
ClaudeCode
谢谢你举报,@shapley。 错误 错误:ENOSPC:系统对访问文件监视者数量的限制,watch '/home/user/grapesjs/node_modules/@babel/traverse/lib/hub.js' 发生在 StyleManager 尝试访问属性时,尚未完全初始化组件生命周期。这是GrapesJS中常见的竞争条件。 立即解决办法: 如果你控制代码,可以用空检查包裹调用: “JavaScript if (component && typeof com...
#53252023年8月21日作者 bohwaz1 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 维瓦尔第 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?执行动作后按Ctrl+Z,以撤销动作被反转,但我的浏览器也会重新打开最后关闭的标签页 预期的行为是什么? 阻止浏览器执行默认的按键绑定。 目前的行为是什么? Ctrl+Z 事件传播在 JS 中不会被停止,因此浏览器仍然执行指定的快捷键。 行为准则 [X] 我同意遵守本项目的行为准则
ClaudeCode
谢谢你举报,@bohwaz。 关于撤销(Ctrl+Z)不会取消浏览器键盘快捷键,这个问题很棒。推荐的UndoManager方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('someth...
#52972023年8月10日作者 FahemAhmad2 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 版本 115.0.5790.171(官方构建)(64位)可复制演示链接 https://codesandbox.io/s/1r0w2pk1vl?file=/index.html描述一下那个虫子 如何复现这个漏洞?...添加此表单类型和表单块 预期的行为是什么? ...在 getJS 中,我希望编辑器中有相关的 js 代码,我不确定我的期望是否正确,如果不正确,请告诉我该如何实现 目前的行为是什么? ...getJS({component}) 返回空字符串 '' 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: “''js 你的代码在这里 Compon...
artf
'getJs' 返回的是你组件模型的 JS(你会放在 'model.defaults.script' 里的那个),而不是组件视图。 请仔细阅读 [组件与JS](https://grapesjs.com/docs/modules/Components-js.html)
ClaudeCode
谢谢你举报,@FahemAhmad。 关于getJS无法使用的好问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something chan...