#53862023年9月15日作者 kmkaliraj2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 埃奇 可复制演示链接 匿名 描述一下那个虫子 如何复现这个漏洞? 版本:0.18.2 我们的系统中记录了Grapejs模块的以下错误。我们不确定该错误发生在哪种情况下。 类型错误:无法读取未定义的属性(读取“宽度”) at Object.getTargetToElementFixed (https://content.domain.com/resource/makerx/static/js/module/vendors~form-designer~c7cc6222.85501132.chunk.js:2:6330393) 载于 i.updateToo...
ClaudeCode
谢谢你举报,@kmkaliraj。 关于无法读取未定义属性(读作“宽度”)的好问题。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something cha...
#53852023年9月14日作者 padcom4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://github.com/padcom/grapesjs-bug-dirty-count-non-deterministic/blob/master/index.html 描述一下那个虫子 目前,当用户调用“wait load()”时,脏计数为零。只有在下一个事件循环或之后,计数才会增加。因此: “JavaScript await editor.load() console.log(editor.getDirtyCount()) 变更次数为1。 预期行为是,在等待调用“load()”后,如果如 #5373 所述编辑器被...
artf
还增加了加载选项,以便在加载后清除编辑器内部状态 “''js const storageOptions = {}; const loadOptions = { clear: true }; await editor.load(storageOptions, loadOptions); editor.getDirtyCount();加载后应该始终是0 ```
artf
这里已经有 https://github.com/GrapesJS/grapesjs/releases/tag/v0.21.6
#53812023年9月12日作者 sammrafi1 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 116.0.5845.187(官方构建)(64位) 可复制演示链接 https://jsfiddle.net/bw4Lxp6c/ 描述一下那个虫子 如何复现这个漏洞? 当我添加一列时,它会生成重复的 CSS 格式(最大宽度:768px) @media 预期的行为是什么? CSS 代码应该生成一次。 目前的行为是什么? @media中复制CSS代码(最大宽度:768px) 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: “''js <div temporary=“”> <div> </div> </div> <div class=“row”> <...
ClaudeCode
谢谢你举报,@sammrafi。 关于重复CSS的好问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed'))...
#53792023年9月12日作者 Sw33tgt4 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome 版本 116可复制演示链接 https://jsfiddle.net/h5b0ndvL/1/描述一下那个虫子 当组件在画布中重新渲染时,模型定义中添加了一个新属性会被渲染,但当组件渲染到画布时,新添加的类不会被添加。初始化函数 Component.ts 添加默认属性以及组件属性。 'this.set('attributes', { ...(result(this, 'defaults').attributes ||{}), ...(this.get('attributes') ||{}), });` 然而,当我查看 initClasses(...
Sw33tgt
目前作为一个变通方法,我用 'editor.on('component:mount', (component) => {});' 函数添加了这个功能,直到收到反馈。看起来效果不错。如果某个类从定义中移除,该被移除的类仍然可以在已保存组件的类列表中使用,但我猜没有解决办法。 “打字稿” editor.on('component:mount', (component) => { const cls = component.getClasses() ||[]; const cls...
Sw33tgt
是的,这对类是有意为之,按照你的方法,你无法从组件中移除定义的类,它们会在组件初始时不断添加。 这对于组件中某个类被遗忘,想在渲染时添加它到另一个版本插件时是可以的。我们把这些类设置为私密,这样用户看不到它们,也无法手动移除。 我相信作为一种变通方法,我可以把旧类的定义存到新属性上,然后在渲染新类之前比较它们,看看哪些需要被删除。我可以想办法解决我们需要的。 感谢你的回复@artf,
Sw33tgt
在 Component.ts 的 initClasses() 函数中做类似这样的功能,会把新类添加到渲染的元素中。告诉我你的看法: “打字稿” const cls = this.get('classes') ||攻击者 ||[]; 从const变为令 令 clsArr = isString(cls) ?cls.split(' ') : CLS; / 与默认职业对比 / cont dCls = result(this, 'defaults').classes ||[]; co...
#53782023年9月11日作者 Sw33tgt4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v116.0.5845.97 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?从画布中选择任意组件打开图层管理器面板选择第一个“分段”组件使用箭头移动该段并改变顺序 预期的行为是什么? 该部门应将新位置移动 目前的行为是什么? 控制台正在抛出一个错误:未捕获类型错误:无法读取未定义属性(读取“Canvas”)和未捕获类型错误:无法读取未定义属性(读取“方法”)。 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: “''js 你的代码在这里 ``` 。我会推迟本周末发布新书。
#53772023年9月11日作者 Akkiiiiiii4 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 铬描述一下那个虫子 升级后,新版本0.21.5出现了这些错误。我们用的是Grapesjs + Angular,Grapesjs V 0.21.5,jsFiddle和codeSandbox目前都不提供,所以我放了一个假链接。请帮帮我们。行为准则[X] 我同意遵守本项目的行为准则
THEWebDegenerate
我用的是Safari和Chrome。 2023年9月12日星期二晚上10:52 Akshay jangid @.> 写道:@artf <https://github.com/artf>你能帮我检查一下这个吗—直接回复此邮件,请访问GitHub查看<https://github.com/GrapesJS/grapesjs/issues/5377#issuecomment-1716989704>,或取消订阅<https://github.com/notifications/un...
#53732023年9月8日作者 padcom4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome最新款 可复制演示链接 https://github.com/padcom/grapes-bug-dirty-after-loading/blob/master/src/App.vue#L37 描述一下那个虫子 克隆并启动项目开放控制台 当前行为:变化次数为1 期望行为:变化次数为0 补充说明:使用“自动加载”时,更改次数保持为0行为准则 [X] 我同意遵守本项目的行为准则
artf
你好@padcom这是正常行为,因为加载本身会更新编辑器的状态。 你可以在手动加载后,通过“editor.clearDirtyCount()”直接清除脏计数器。
padcom
请注意,如果你启用了“自动加载”: 并禁用加载功能: 修改次数为“0”,尽管结果相同——页面被加载。因为我的项目非常需要能在特定时间加载页面,这让一切都乱了。我也尝试过在加载后清除更改次数,但由于设置代码是通过“setTimeout()”回调,无法确定性地完成。
padcom
请问?你是认真的认为这是“预期”的行为吗?你见过其他编辑器加载时项目会自动修改然后自动保存吗?我很难相信。
#53722023年9月8日作者 uncldrw1 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Windows、Chrome、React 可复制演示链接 / 描述一下那个虫子 当尝试添加自定义 atRules 如 @container 或 @font-face 时,CSS 总是编译成 @media。我尝试过各种方法,包括使用 Css.setRules 和 Css.addRules,以及插入 HTML 字符串,但都无济于事。 这是我给的代码: 行为准则 [X] 我同意遵守本项目的行为准则
ClaudeCode
谢谢你举报,@uncldrw。 无法添加自定义AtRule(@container,@font面)的问题似乎是竞态条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)...
#53632023年9月5日作者 rozek4 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 版本 1.56.20 Chromium:115.0.5790.171(Offizieller 构建)(arm64)可复制演示链接 没有描述一下那个虫子 当我尝试通过图层面板中排序画布上的元素时,拖曳时反复出现以下错误提示: 此外,在“鼠标上移”时,我会收到以下错误信息 这个问题可能是最近才出现的,因为我记得几天前排序功能还能用......行为准则[X] 我同意遵守本项目的行为准则
rozek
'Sorter.ts:500' 包含 'const cv = this.em!.Canvas',显然是错误的(因为“em”_是null或未定义) 很遗憾,我目前还不太理解所有缩写的代码——但是:如果将第499行改为“如果(型号?)”,会不会更易。Set && (this.em != null)) {' 这里有帮助吗? 注意:确实,这个小“窍门”帮我整理图层——我可以把图层往下移,但不能往上移。而且,因为我不懂代码,我的破解就是“破解”,不是修复!
artf
作为 https://github.com/GrapesJS/grapesjs/issues/5355 的重复关闭
#53622023年9月5日作者 rozek4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 版本 1.56.20 Chromium:115.0.5790.171(Offizieller 构建)(arm64) 可复制演示链接 没有 描述一下那个虫子 我用特定的类型拖拽规则定义了自己的组件类型: 但配置函数从未被调用。相反,拖曳无需任何约束,而插入则仅作用于包装元素。 一个可能很重要的细节:我的“拖拽模式”被设置为“绝对”状态 行为准则 [X] 我同意遵守本项目的行为准则
rozek
即使将“可拖拽”和“可丢弃”设置为“true”,我也无法将一个元素拖入另一个元素
rozek
第一个解决方法可以帮助将组件放入其他组件:从 'grapesjs.init({...})中移除'dragMode:'absolute'`相反,在你希望拖拽(甚至可能可丢弃)的每个组件类型的“model.defaults”中添加“dmode:'absolute' 然而遗憾的是,在将组件移入或移出容器后,绝对位置并不会重新计算......这使得“功能”使用起来非常困难。更不用说,在图层面板内将组件分类到容器中非常繁琐。 而且,“可拖拽”和“可丢弃”这两个函数依然没有被调用。
artf
在绝对模式下,没有移动组件在其他组件内外的概念。绝对模式下的组件只在样式位置上更新,DOM中不会移动,这就是为什么可拖拽/可放在这里不合理。 如果你不完全理解系统原理,请@rozek避免打开BUG问题,建议使用讨论区。