#52452023年7月16日作者 riteshdalal4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 114.0.5735.198 可复制演示链接 https://jsfiddle.net/riteshdalal/obnx7sg3/22/ 描述一下那个虫子 如何复现这个漏洞?在模型中创建一个带有 editable:false 的组件将组件放置在画布上 预期的行为是什么? 不可编辑组件的内容不应被GJS解析 目前的行为是什么? 不可编辑组件的内容会被解析并可编辑 请查看附带的演示链接行为准则 [X] 我同意遵守本项目的行为准则
artf
“可编辑”属性默认没有意义,只有其他扩展组件如“文本”或“图像”在内部使用。
riteshdalal
@artf我们如何创建一个组件,使 GJS 不解析这些子节点。
riteshdalal
“可编辑”属性默认没有含义,只被其他扩展组件如“文本”或“图像”内部使用。 这在旧版GJS上是有效的。0.21.3 版本就完全不工作了
#52362023年7月11日作者 joukhar2 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome 版本 114.0.5735.199(官方构建)(64位)可复制演示链接 无描述一下那个虫子 抱歉又提起这个问题了,但你的提交功能不起作用 我用“npm install GrapesJS/grapesjs#dev”安装了开发版本 问题依然存在。 请您检查以下内容: /葡萄酱/src/dom_components/view/ComponentTextNodeView.ts “''js render() { const { model, el } = this; 如果 (model.opt.temporary) 返回此值; el.textCont...
artf
@joukhar“npm install GrapesJS/grapesjs#dev”是不够的,我还没在开发分支里创建构建,所以如果你想本地解决这个问题,必须先自己构建。 无论如何,即使相关问题关闭了,也没必要新建,你仍然可以在那里添加更新,问题没有被锁定。
ClaudeCode
谢谢你举报,@joukhar。 textnode 内容为“null”,但显示为“null”而非空白,这似乎是竞赛条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)—...
#52322023年7月11日作者 bgrand-ch4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 114.0.5735.133 可复制演示链接 不可能添加工蚁来繁殖。 描述一下那个虫子 如何复现这个漏洞?添加一名网页工作人员。在工作者内部初始化 GrapesJS,并设置“无头”选项。添加一个带有“编辑器”的插件。DomComponents.addType“ + ”styles“。给员工发消息。参考文献错误:文档未定义。 预期的行为是什么? 在工作程序中使用 GrapesJS 时,可以避免出现“ReferenceError: document is not fined”错误。 目前的行为是什么? 参考错误:文档未定义。 如果需要执行某些代码以重现该...
artf
你好,@bgrand-ch,不幸的是,所有涉及解析器(HTML/CSS)的内容都需要使用与DOM相关的API。对于CSS,也许你可以试试用[parser-postcss插件](https://github.com/GrapesJS/parser-postcss),我预计它能在工作环境下工作
bgrand-ch
你好,@artf,非常感谢你的快速回复😄,我这周会试试看。
bgrand-ch
@artf Post CSS 解析器插件在 Web Worker 中运行得非常完美!谢谢你的帮助。
#52212023年7月7日作者 Staubgeborener2 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Safari 16.5可复制演示链接 https://grapesjs.com/demo.html https://staubgeborener.de/描述一下那个虫子 我试用的是官方的[演示](https://grapesjs.com/demo.html)。我什么都没改,只是点击“查看代码”按钮,把html和css文件下载成压缩包。这些文件上传到了我的网页服务器,桌面设备运行良好。但只要我用移动设备(比如iOS——Safari浏览器)访问这个网页服务器,网站还是桌面版,而不是移动版。演示本身已经实现了移动端版本。 如何复现这个漏洞?访问 https:/...
artf
这与核心无关,只是导出 HTML 中缺少一个元标签demo.html '''html <meta name=“viewport” 内容=“width=device-width,initial-scale=1”> ``` 如果你想提交永久居民申请,我很乐意帮你合并
ClaudeCode
谢谢你举报,@Staubgeborener。 关于错误的移动设备上的桌面版,这是个很好的问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('so...
#52112023年7月2日作者 Zafermushtaha973 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? v9.2 可复制演示链接 https://jsfiddle.net/szLp8h4n 描述一下那个虫子 我在 Vue3 项目中使用它 当我想添加新组件时,页面会挂机且没有响应 这是我的代码: 行为准则 [X] 我同意遵守本项目的行为准则
gxanshu
你好!😊 我不认为这是GrapesJS的bug。我查看了你的复制链接,尝试在画布中添加组件,完全没问题。👍
artf
你必须绕过Vue的代理观察者 https://github.com/GrapesJS/grapesjs/issues/4497#issuecomment-1213078160
ClaudeCode
谢谢你举报,@Zafermushtaha97。 bug 的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原因 在报告中...
#51752023年6月10日作者 krishnaeverestengineering4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://codesandbox.io/s/adoring-margulis-873kdv 描述一下那个虫子 背景 移动组件的方法没有按预期工作。 这段代码没有按预期工作。 这段代码应该能用。当 sameParent 是 false 且目标索引为 1 时,比如 0 到 1 的位置就不会移动到行为准则 [X] 我同意遵守本项目的行为准则
krishnaeverestengineering
解决方法:https://github.com/GrapesJS/grapesjs/pull/5176
artf
谢谢@krishnaeverestengineering,但这实际上是将组件移入同父节点时的预期行为。这是因为“at”还应考虑组件本身的索引。 所以,如果你尝试将“组件1”移到索引0或1,什么都不会发生。如果你需要把它移到“组件2”以下,你必须标注索引2
krishnaeverestengineering
谢谢@krishnaeverestengineering,但这实际上是将组件移入同一父节点时的预期行为。这是因为“at”还应考虑组件本身的索引。 所以,如果你尝试将“组件1”移到索引0或1,什么都不会发生。如果你需要把它移到“组件2”以下,你必须标注索引2 但我不太理解它的使用场景。通常在最后版本中,'at '应该算是索引。那怎么把组件从0移到索引1呢?
#51742023年6月9日作者 tomsleeter3 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome 114.0.5735.110(官方版本)(64位)可复制演示链接 'https://grapejs.com' *编辑:本网站/域名提供恶意软件,真实 grapesjs.com 域名中缺少“s”。描述一下那个虫子 访问 grapejs.com 主页时,浏览器会被引导进入一连串重定向,最终进入一个恶意软件S3登陆页面,画面爆发出全屏+音频+弹窗垃圾信息,要求付款。 后续访问时转载/隐身版。 我相当确定这不是我这边的问题行为准则[X] 我同意遵守本项目的行为准则
tomsleeter
这只是间歇性,现在我终于能正常看到 grapejs.com 首页了
tomsleeter
好吧,这是我的错误,我输入错了网址/域名——漏掉了 grapesjs.com 里的“s”。 访问URL grapejs.com 是一个带有大量恶意软件/弹窗的假地址 我相信错误的域名会重定向到每隔一页加载一次 grapesjs.com,这让情况更复杂。 结束了,主网站没有问题。
ClaudeCode
谢谢你举报,@tomsleeter。 GrapeJS.com 首页被黑/链式重定向恶意软件的问题似乎是竞赛条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有...
#51672023年6月6日作者 KevenDvorianoff2 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 全部可复制演示链接 没有描述一下那个虫子 按照使用TypeScript创建插件的文档,并使用“usePlugin”功能将插件导入编辑器,浏览器显示以下错误: 看起来函数声明不在节点模块的压缩 js 中。行为准则[x] 我同意遵守本项目的行为准则
ClaudeCode
谢谢你举报,@KevenDvorianoff。 错误 TypeError: g.usePlugin 不是函数 发生在模块尝试访问属性时,尚未完全初始化组件生命周期。这是GrapesJS中常见的竞争条件。 立即解决办法: 如果你控制代码,可以用空检查包裹调用: “JavaScript if (component && typeof component.method === 'function') { 你的准则 } ``` 根本原因分析: 模块在调用你的方法之前不会验证状态。当...
#51642023年6月6日作者 shomeel2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 版本 112.0.5615.49(官方构建)(x86_64) 可复制演示链接 https://jsfiddle.net/shomeelconovo/k7L2rthg/1/ 描述一下那个虫子 我需要关于grapes.js的帮助。我创建了一个项目,每当我在 Canvas 中放置组件时,默认每个组件都有显示:表属性。不过我grapes.js试过官方演示,演示里每个元素默认都是显示:flex。可能出了什么问题?为什么本地项目默认属性不同?行为准则 [X] 我同意遵守本项目的行为准则
artf
https://github.com/GrapesJS/grapesjs/discussions/5163#discussioncomment-6162516
ClaudeCode
谢谢你举报,@shomeel。 默认组件是用我的演示项目中的表创建的,但演示用flex属性创建组件的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)...
#51592023年6月1日作者 CaptSadaf3 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 铬可复制演示链接 https://codepen.io/darrenbawag/pen/JjWBLrp描述一下那个虫子 如何复现这个漏洞?打开这个链接 https://codepen.io/darrenbawag/pen/JjWBLrp,尝试用这段代码显示 CKEditor 工具栏的占位下拉菜单,但只有当我们没有添加 grape grapesjs-plugin-ckeditor 时,下拉菜单才会显示。 “'' rte.add(”fontSize“, { 图标:“<select class=”gjs-field“> <option id=“defaultP...
CaptSadaf
CC:@jcamejo @artf
artf
这些动作只在内置RTE上使用,如果你用自定义RTE比如CKEditor替代,就看不到它们。你必须用 CKEditor 来实现自定义逻辑。
ClaudeCode
谢谢你举报,@CaptSadaf。 关于启用CKEditor后无法添加占位符下拉到文本字段下拉选项的好问题。ProseMirror 推荐的方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.lo...