#53302023年8月24日作者 rozek3 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 没有 可复制演示链接 没有 描述一下那个虫子 “纱线构建”失败,出现两个错误: 这可能只是TypeScript太挑剔的问题,因为你可以用“// @ts-ignore”禁用错误信息,然后重新编译测试会顺利运行。 但因为我刚接触GrapesJS,不能自评。无论如何,通常不建议直接用“// @ts-忽略”来处理TypeScript错误...... 行为准则 [X] 我同意遵守本项目的行为准则
ClaudeCode
谢谢你举报,@rozek。 最新版本(提交4f0c5b1)不再无错误编译的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根...
#53282023年8月22日作者 sdimitrenco2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://jsfiddle.net/sdimitrenco/wao1rh0q/30/ 描述一下那个虫子 那是我的组件结构 如果我在文本编辑器中更改span标签中的文本,然后移除该词的焦点,它会返回文本的前一个状态。组件的结构看起来正常,是链接,但内容在图片和文字中,都放在span标签里。 演示  现场演出 https://jsfiddl...
ClaudeCode
谢谢你举报,@sdimitrenco。 移除RTE焦点后可编辑文本的问题,返回了之前的内容状态。似乎是竞赛条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有...
#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...
#53202023年8月18日作者 SwapnilSoni19994 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v114 可复制演示链接 没有 描述一下那个虫子 如何复现这个漏洞?我用的是[grapesjs-react](https://www.npmjs.com/package/grapesjs-react),用的是'assetManager'我的配置长这样 “''js { 上传: '${globals.settings.cmsUrl}/upload-image', 上传名:“image”, 页头:{ 授权:“持有人${token}', }, autoAdd: true, multiUpload: false, } ``` 附言:我确实有一个能...
artf
刚试了同样的配置,一切正常。 可能和你的Grapesjs版本或者“grapesjs-react”本身有关。 如果你无法用最新版本的GrapesJS提供可复现的演示,请避免制造BUG问题。 我也强烈建议切换到[官方的GrapesJS React包装器](https://github.com/GrapesJS/react),它也允许你为编辑器实现完全声明式的自定义UI。
#53192023年8月18日作者 AFriboulet-ii2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome V116.0.5845.96 可复制演示链接 https://jsfiddle.net/AdrienFriboulet/npdkshaf/8/ 描述一下那个虫子 https://github.com/GrapesJS/grapesjs/assets/128728949/e85b65c4-53ad-43d0-9f5f-74dc0a181dd0 如何复现这个漏洞?开放提供的小提琴 [此处](https://jsfiddle.net/AdrienFriboulet/npdkshaf/8/)删除一个组成部分的“段落”选择之前的组件,下放并点击工...
artf
谢谢@AFriboulet-ii,我会在下次发布时修复。
ClaudeCode
谢谢你举报,@AFriboulet-ii。 关于Undo不会在组件上刷新类,这个问题问得很好。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('somethin...
#53162023年8月17日作者 BenKhz3 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome v115.0.5790.170可复制演示链接 https://jsfiddle.net/BenKhz/yfwqc6mu/1/ 参考[这里的文档](https://grapesjs.com/docs/api/selector_manager.html#available-events)描述一下那个虫子开放式提供的小提琴 [此处](https://jsfiddle.net/BenKhz/yfwqc6mu/1/)在 Canvas 上选择一个组件,并通过选择器管理器添加类。(“添加”和“更新”事件将被捕获)从类管理器中移除一个类'editor.on...
artf
你好,@BenKhz之所以这样,是因为“selector*”事件与全局Selectors容器有关(当你从组件中移除选择器时,Selector本身仍然存在,因为它可以在其他地方使用),如果你想跟踪组件选择器的变化,必须使用'component:update:classes'事件
BenKhz
啊!我误会了。谢谢你的澄清。继续加油!
ClaudeCode
谢谢你举报,@BenKhz。 编辑器未订阅selector:remove的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根...
#53122023年8月17日作者 srinivas9772 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome V115可复制演示链接 https://jsfiddle.net/srinivas977/ahgLxv6e/10/描述一下那个虫子 如何复现这个漏洞?在提供的JSFiddle中,包含一对文本行和选择列表。接着,添加一个子列表,然后添加子列表。之后,点击选定元素外的选项会使子列表中的某个物品消失。 这个现象也在这个视频链接中看到(从视频第30秒开始注意): https://github.com/GrapesJS/grapesjs/assets/49796104/59de9aa5-5f3f-43ae-9ed1-358b86ac8b27 预期的行...
artf
不幸的是,由于默认实现依赖于 [deprecated execCommand](https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand),导致太多边缘情况难以处理,已经不值得再花时间去处理了。 我建议只用它来处理基本格式(例如加粗、斜体、下划线等),对于更复杂的元素,我强烈建议创建[自定义组件](https://grapesjs.com/docs/modules/Components.htm...
ClaudeCode
谢谢你举报,@srinivas977。 关于列表富文本编辑器缩进操作的问题的好建议!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:*”事件进...
#53052023年8月13日作者 rajevar2 个回答
葡萄JS版本 0.21.4[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome 版本 113.0.5672.63可复制演示链接 https://jsfiddle.net/szLp8h4n/11/描述一下那个虫子 如何复现这个漏洞? 在页面上移动任何文本组件。 警报将会显示。 可能是倒退。 https://github.com/GrapesJS/grapesjs/issues/868 没看到重新开启bug的选项,所以新建一个。 预期的行为是什么? 警报只会在向画布添加新组件时显示 目前的行为是什么? 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: “''js 你的代码在这里 ```行为准则[X] 我同...
artf
你好@rajevar我觉得你是在找“component:create”事件,因为“component:add”是正常工作的(比如用来跟踪某个组件内的任何新移动)
ClaudeCode
谢谢你举报,@rajevar。 关于“组件:添加”事件在组件移动时触发,这个问题很棒。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something ch...
#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...
#52932023年8月10日作者 craigharman2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 篇章 1.1.1 可复制演示链接 https://jsfiddle.net/3bprucnv/3/ 描述一下那个虫子 如何复现这个漏洞? 为 .gjs-selected 添加自定义 CSS 规则,例如:把边框颜色改成红色。 .gjs-selected { 轮廓颜色:红色; } 预期的行为是什么? 在 grapesjs 编辑器中选择元素时,选区边框应为红色。 目前的行为是什么? 边框/轮廓保持蓝色。 注意:所有与选择/高亮相关的其他 CSS 覆盖均已成功覆盖(例如 highlighter、highlighter-sel)行为准则 [X] 我同意遵守本项...
artf
请参考 https://github.com/GrapesJS/grapesjs/issues/3515
ClaudeCode
谢谢你举报,@craigharman。 关于无法覆盖GJS选中的职业,这是个很好的问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('somet...