#64072025年2月16日作者 gopukinapp2 个回答
葡萄JS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 版本 133.0.6943.98 可复制演示链接 https://codesandbox.io/p/sandbox/loving-breeze-mdls43?file=%2Findex.js%3A77%2C6 描述一下那个虫子 我正在尝试给我的方块添加一些自定义 triats,但很遗憾我只能看到默认的 triats [id,title] 我的方块里有很少的 HTML 代码,但如果我移除所有 HTML 代码,只在组件属性里放一个字符串,比如 Hellow World,没有任何 html,triats 就会显示出来 “''js 组件: <h2 class...
artf
你的组件有内部的“组件”,所以如果你选择其中一个,你会看到这些组件的特征,而不是“事件块”。 如果你正确选择“事件块”,你会看到你的特质。 <img width=“856” alt=“Image” src=“https://github.com/user-attachments/assets/a0913237-02f9-44f8-af51-6d151b618a37” /> 顺便说一句,这个 “''js this.view.el.querySelector(“[data-ev...
ClaudeCode
谢谢你举报,@gopukinapp。 自定义特征无法在自定义块内加载的问题似乎是竞赛条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原...
#63732025年1月16日作者 ChipiKaf2 个回答
葡萄JS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 版本 131.0.6778.265 可复制演示链接 https://codepen.io/chipikaf/pen/KwPexjL 描述一下那个虫子 如何复现这个漏洞? 将按钮组件放在中间部分 将按钮在该区域任意移动 元素调整大小 预期的行为是什么? 将元素调整到其原始位置 目前的行为是什么? 该元件被移到一个意想不到的位置 行为准则 [x] 我同意遵守本项目的行为准则
ChipiKaf
@artf我本地有解决办法。基本上我会检查元素是否有相对位置的父元素,然后如果存在且位置相对,则将矩形体偏移为父节点的高度。 如果可以的话,我可以帮它创建一个永久纪录?
ClaudeCode
谢谢你举报,@ChipiKaf。 关于在启用绝对拖拽时,子节点调整大小时在父位置中出现了错误元素,但相对位置是错误的,这个问题很棒。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.l...
#63582024年12月19日作者 rhoenerSBS2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v131 可复制演示链接 https://jsfiddle.net/0uaxn2vc/2/ 描述一下那个虫子 如何复现这个漏洞?打开小提琴链接选择可以添加组件的主体或其他组件尝试只通过点击方块添加组件,不要拖放以前能用,但现在即使在 BlockManager 配置里用 appendOnClick: true 也不能了 预期的行为是什么? 组件应仅点击添加 目前的行为是什么? 控制台错误:“BlockView.ts:58 未捕获类型错误:c.setDropContent 不是函数”,组件未被添加行为准则 [X] 我同意遵守本项目的行为准则
artf
感谢@rhoenerSBS问题已修复,[这里](https://github.com/GrapesJS/grapesjs/pull/6346),并将在下一个版本中提供。
ClaudeCode
谢谢你举报,@rhoenerSBS。 关于BlockManager配置“appendOnClick”不再工作的好问题。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('som...
#63572024年12月13日作者 Harshsne261 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://codepen.io/Harshsne/pen/YPKwRBg 描述一下那个虫子 如何复现这个漏洞?从 blockmanager 添加行组件。在样式管理器中更改其宽度。(!important是因为它的默认宽度是100% !important)。现在添加文本框,改变其宽度。 预期的行为是什么? 宽度不应加上!important。 目前的行为是什么? 宽度加上了!important。 在更改行宽度后,如果我们更改画布中任意组件的宽度,宽度会被添加为 !importance 。  寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('some...
#63242024年11月22日作者 badiuciprian4 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 131.0.6778.86可复制演示链接 https://jsfiddle.net/badiuciprian/qe28obhr/1/描述一下那个虫子 如何复现这个漏洞?尝试将任意方块拖到画布上 预期的行为是什么? 组件被渲染到画布上 目前的行为是什么? 什么都没发生,浏览器控制台显示错误: BlockView.ts:103 未捕获类型错误:a.setDragHelper 不是函数 在o.startDrag(BlockView.ts:103:12) 在 HTMLDivElement.t (cash-dom.ts:765:36) 在我的真实应用中,我会收到“...
mohamedsalem401
我成功复现了它。这只发生在“nativeDnD: false”上。这可能让块视图使用旧排序器的API。我会尝试解决这个问题。
artf
@mohamedsalem401你能帮我检查一下这个吗?
badiuciprian
谢谢你帮我处理这件事。我会关注更新。
#63072024年11月12日作者 maxming23331 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 130.0.6723.117 可复制演示链接 https://grapesjs.com/demo-mjml 描述一下那个虫子 如何复现这个漏洞?随机选择一个组件,比如演示页面的第二个“mj-section”在编辑器中将该组件悬停(你可以看到它可以悬停)找到该组件的ID,并执行“编辑器”。Components.getById('iv19a').tagUpdated()'再次尝试悬停该组件,发现无法悬停。 预期的行为是什么? 没有报错,你可以继续悬停 目前的行为是什么? 错误会被报告且无法悬停 <img width=“668” alt=“image” s...
ClaudeCode
谢谢你举报,@maxming2333。 关于 MJML 组件 'tagUpdated' 会让它无法“悬停” 的问题,这个问题很棒。ProseMirror 推荐的方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () =>...
#62962024年11月5日作者 maneeshp972 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Arc v1.61.1 可复制演示链接 https://codesandbox.io/s/grapesjs-react-components-n6sff 描述一下那个虫子 @artf首先感谢你提供这个了不起的图书馆。我当时试图在 Grapesjs 内创建自定义 React 组件,偶然看到了之前报告的一个与 React 集成相关的问题中的沙盒链接。 [https://codesandbox.io/s/grapesjs-react-components-n6sff] 我通过引用沙盒后成功让自定义 React 组件运行,但有一个问题依然存在。每当自定义 R...
artf
是的,从演示的角度来看这是正常的。 你可以玩代码找到解决办法,但我会关闭这个,因为它不是核心漏洞。
ClaudeCode
谢谢你举报,@maneeshp97。 自定义 react 组件被包裹在 div 里 的问题似乎是竞态条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于...
#62812024年10月30日作者 sumasal3 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 最新的Chrome、Firefox、Edge 可复制演示链接 https://grapesjs.com/demo 描述一下那个虫子 如何复现这个漏洞?在图层管理器中拖动一个组件,尝试将其置于本体下方的其他物品之间不允许。允许筑巢 预期的行为是什么? ...嵌套和重新排序都应被启用 目前的行为是什么? ...顶层仅启用嵌套行为准则 [X] 我同意遵守本项目的行为准则
artf
下次版本会修复。 感谢@sumasal的报告,也感谢@mohamedsalem401的修复 🙇 ♂️
sumasal
期名被删减了。我的意思是,它似乎能在较旧版本如0.21.8及以下运行
ClaudeCode
谢谢你举报,@sumasal。 关于图层管理器不允许在同一层重新排序的建议很棒。只有在顶部(正下方)的旧版本(例如:0.21.8!)上方才允许嵌套。虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法:* 听取“selector:add”以获取CSS选择器更改 使用“selecto...
#62712024年10月25日作者 padcom4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Linux和Mac上的Firefox 131.0(64位) 可复制演示链接 https://grapesjs.com/demo 描述一下那个虫子 如何复现这个漏洞?开始拖动“悬停我”按钮尽量把它放在“所有文本块都可以轻松编辑......”的上面。 预期的行为是什么?按钮可以随处放置图层管理器可用于重新组织元素 目前的行为是什么?按钮只能在容器开头放置图层管理器内的拖拽也有同样的限制行为准则 [X] 我同意遵守本项目的行为准则
padcom
你们太棒了!正是时候,正好及时:)我今天下午有个演讲,现在我也能演示它在Firefox上的工作了!
padcom
我已经追踪到Firefox版本109.0的重大变更。这是第一个有问题的。108.0.2版本运行良好。希望这些信息对你有帮助。
padcom
我也测试了2024-10-24-21-16-15-mozilla-central的133.0a1,问题依然存在。
#62692024年10月25日作者 bt-mkt4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 版本 130.0.6723.59(官方版本)(arm64) 可复制演示链接 https://codepen.io/btmkt/pen/QWeOJRB?editors=1111 描述一下那个虫子 如何复现这个漏洞?打开控制台。在画布内放置多个组件(例如用三列方便复现)。将“额外”类别末尾添加的“测试-合成”组件拖拽到新增组件上。 预期的行为是什么? 组件“模型”和“视图”初始化事件(至少不确定是否有其他事件)应该只在将组件放入画布时触发,而不是每次拖动到可丢弃组件上方时触发。 目前的行为是什么? 组件的“模型”和“视图”初始化事件每次拖动...
artf
@mohamedsalem401这很可能是因为编辑器太肤浅了。 我觉得利用canMove中的“临时”选项(我们已经用它跳过部分动作)是合理的。你怎么说? “''js const wrapper = this.getShallowWrapper(); srcModel = wrapper?.附录(来源,{ 临时:真实})[0] ||无效; ```
mohamedsalem401
@artf 是的,我怀疑这和“浅层编辑器”有关。希望临时方案能奏效,然后我再开永久居民申请
bt-mkt
@mohamedsalem401这很可能是因为编辑器太浅了。我觉得利用canMove中的“临时”选项(我们已经用它跳过部分动作)是合理的。你怎么说?“''jsconst 包装器 = this.getShallowWrapper();srcModel = wrapper?.附录(来源,{ 临时:真实})[0] ||无效;``` 你好,@artf, 上面看到的改动(我看到已经实现了)似乎并没有解决我遇到的问题。它和0.22.1版本一样。 我已经把手写笔升级到了0.22.3(ht...