#66542025年11月19日作者 zjt-dev4 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬V91 可复制演示链接 https://codepen.io/asenper/pen/QwNMwpV 描述一下那个虫子 我本以为点击文本时RTE会打开,但什么都没发生。 这是个bug,还是我漏掉了额外的配置? 行为准则 [x] 我同意遵守本项目的行为准则
artf
默认情况下,文本部分通过双击激活 https://github.com/GrapesJS/grapesjs/blob/f59e981f76ff378f59c06cf706af88e502db098e/packages/core/src/dom_components/view/ComponentTextView.ts#L22
zjt-dev
<img width=“1382” height=“393” alt=“Image” src=“https://github.com/user-attachments/assets/6a3850b9-91ed-43de-b9ae-1a2f703e6f02” /> <img width=“695” height=“468” alt=“Image” src=“https://github.com/user-attachments/assets/2a62ad3b-ed7a-4d8...
artf
导入通用HTML时,很难准确检测文本成分。如果你有编辑 HTML 的能力,可以通过 gjs 属性 '<div data-gjs-type=“text”>Insert...' 来强制执行。
#66512025年11月17日作者 DavidHarvey2 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 142.0.7444.61 可复制演示链接 https://codepen.io/DavidHarvey-the-lessful/pen/ZYWeMbG 描述一下那个虫子 当将“可丢弃”组件移动到“文本”组件时,组件“可丢弃”状态会被忽略。 如何复现这个漏洞? 尝试将可文本组件拖拽到文本组件中,使用“droppable: false”。 预期的行为是什么? 作为用户,我认为将 droppable 设置为 false 可以防止内部组件丢失。 目前的行为是什么? 放弃是允许的。 行为准则 [x] 我同意遵守本项目的行为准则
artf
https://github.com/GrapesJS/grapesjs/pull/6652#issuecomment-3551018995
ClaudeCode
谢谢你举报,@DavidHarvey。 关于将可文本组件迁移到文本时,Droppable被忽略的建议很棒!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“c...
#66462025年11月11日作者 soul-media3 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 与 Firefox 可复制演示链接 描述一下那个虫子 如何复现这个漏洞? Chrome 和 Firefox: 为图片/文本添加填充 有时会出现错误,有时不会发生。 https://github.com/user-attachments/assets/01270f08-974d-4898-bde0-83233f9258e0 目前的行为是什么? 铬 错误如下:Uncaught InvalidCharacterError:未能在“Element”上执行“setAttribute”:“0”不是有效的属性名。 这是我添加填充前的文字样子。...
trebor94
我也遇到了同样的问题,同时也在用“grapesjs-mjml”插件。显然,只有在加载一个项目时才会发生,而该项目的“属性”上存在“样式”属性。每次在编辑器中做更改后,'style'属性都会被扩展,'旧值'会加上最近的值,项目的 JSON 呈指数增长。 我尝试过不同版本的葡萄,从'0.22.2'版本开始往上看。到了版本'0.22.6'时,这个问题开始出现,所以在'0.22.5'和'0.22.6'之间某个时候,这个bug应该被引入了。在之前的所有版本中,一切都按预期运行。 为了...
trebor94
很遗憾,我没能弄清楚在导出之前加载的项目数据时,'style'属性会在哪里、什么时候被添加到组件的'style'里。也许有人能找出问题的原因。 @soul-media:顺便说一句,给“mjml”组件补丁“init”方法作为变通方法似乎有效,并且阻止了“style”属性在项目数据导出时添加(即使加载了之前保存的项目)。这似乎即使在“0.22.14”版本下也能正常工作,JSON输出会和你截图右侧的差不多。 要修补该函数,可以使用 'grapesjs-mjml' pluginsO...
ClaudeCode
感谢@soul媒体的报道。 关于Javascript错误“当我想添加填充的好问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('somethin...
#66412025年11月8日作者 bilogic2 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 版本 141.0.7390.123(官方构建)(64位) 可复制演示链接 https://codesandbox.io/p/sandbox/jovial-elion-js8zgy?file=%2Findex.js%3A1%2C1-15%2C1 描述一下那个虫子 “JavaScript 从“grapesjs”导入葡萄; 导入“grapesjs-blocks-basic”; const editor = Grapesjs.init({ 容器:“#gjs”, fromElement: 1, storageManager: { type: 0 },...
artf
嘿,@bilogic你的演示似乎用的是正确的 API 来扩展组件,那个依赖 '.extend(' 的 API 早就被放弃了
ClaudeCode
谢谢你举报,@bilogic。 在设置扩展模型默认时出现错误的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原因 在报...
#66342025年10月28日作者 ssteele3 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 141.0.7390.123 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 我们的应用服务于要求所有页面对所有用户均可访问的客户。我正在运行最新的 Grapesjs 库: “package.json “grapesjs”: “0.22.13”, “grapesjs-blocks-basic”: “1.0.2”, “grapesjs-preset-webpage”: “1.0.3”, <img width=“1728” height=“1117” alt=“Image” src=“...
artf
这与 https://github.com/GrapesJS/preset-webpage 相关 你可以自由地在插件上更新样式,或者提交带有修复的PR。
ClaudeCode
谢谢你举报,@ssteele。 关于无障碍错误的好问题。ProseMirror 推荐的方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')); 组...
#66292025年10月14日作者 paolotozzo1 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 最新版本 可复制演示链接 https://app.grapesjs.com/studio 描述一下那个虫子 如何复现这个漏洞? 初始化 GrapesJS 编辑器,使用默认设备配置 切换到平板或移动设备视图 添加文本块组件(或任何带有默认样式的组件,例如边距:10px) 切换回桌面视图 注意默认样式不会应用到桌面 预期的行为是什么? 默认组件样式应始终应用于基础CSS规则(不使用媒体查询),无论编辑器当前选择的是哪种设备。 目前的行为是什么? 默认样式应用于当前选择设备的媒体查询,导致: 在平板/移动端添加组件时,桌面缺少样式 在...
ClaudeCode
谢谢你举报,@paolotozzo。 关于 *v0.22.10+ 中默认组件样式错误应用到设备特定媒体查询的问题,真是个好问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () =...
#66232025年10月10日作者 zhengtulymGh1 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 140.0.7339.214(正式版本) (x8664) 可复制演示链接 https://codesandbox.io/p/devbox/d27l6n 描述一下那个虫子 我想基于GrapesJS创建一个自定义动态列表组件(默认为3行)。它可以绑定到数组变量,并根据数组长度动态改变容器中的行数。现在我遇到了冻结问题。复制步骤如下: 点击左侧的变量标签,创建一个长度为4的新数组变量。 [![请输入图片描述][1]][1] 回到组件标签,将动态列表容器组件拖到画布上。 选择你刚拖入的动态列表组件。右侧的样式标签页会显示一个下拉菜单,用于绑定数组变量...
ClaudeCode
谢谢你举报,@zhengtulymGh。 自定义动态列表在绑定数组并展开行以匹配长度后卡死的问题,似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这...
#66182025年10月1日作者 mohamedsalem4011 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 修复如果不需要传递“collectionsSourceMap”的问题 确保所有听众在不需要时都被清洁 提升“Editor.loadProject”速度 行为准则 [x] 我同意遵守本项目的行为准则
ClaudeCode
谢谢你举报,@mohamedsalem401。 提升编辑器性能并修复内存泄漏的问题似乎是竞态条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快...
#66062025年9月12日作者 MisterKeyboard4 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Firefox 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 描述 编辑器加载时间非常慢。 在复杂的页面(例如包含众多元素和插件如旋转木马的首页),完全加载可能需要长达1分20秒。 但即使是只有少量元素的页面,加载速度仍然明显很慢(几秒钟)。 这种性能问题使编辑器在制作中使用变得困难。 繁衍步骤 打开 GrapesJS 编辑器,创建一个包含多个组件和插件(例如轮播)的页面。 等待编辑器加载。 也可以用只有几个块的简单页面进行测试。 预期结果 编辑器应在几秒钟内加载,无论页面复杂度如何。 实际结...
artf
感谢@MisterKeyboard提供JSON。 你的项目包含了10K风格的规则,数量不少,但我不认为负载会受到太大影响。 @mohamedsalem401我认为我们需要确认数据源相关的更改(例如“StyleableModel.set”)是否对数据🤔源影响过大
mohamedsalem401
@artf会看看并更新情况。
artf
@MisterKeyboard你能分享项目的JSON吗?这样我们可以验证
#66032025年9月4日作者 nanto2 个回答
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v142.0.7392.0 (canary) 可复制演示链接 https://jsfiddle.net/xce183nm/1/ 描述一下那个虫子 如何复现这个漏洞? 创建一个编辑器实例,加载包含字符引用的 HTML 代码。 “''js const editor = Grapesjs.init({ 组件: '<body><p title=“< & >”></p></body>', }); 预期的行为是什么? 属性值中的符号通过字符引用转义。“p”元素的“title”属性值被解析为“< & >...
artf
谢谢你提供的所有信息和细节,这很有帮助。也谢谢你的宣传。
ClaudeCode
谢谢你举报,@nanto。 关于&&在属性值上无法逃避的建议很棒!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:*”事件进行细致跟踪 构建一...