GrapesJS 问题

已收录 3,464 个 GitHub 问题 370 个已解决 · 90 个待解决 搜索、筛选并探索经过实战检验的答案。

找到 3,464 个问题

#46032022年9月22日作者 Akira-Kuru2 个回答
1 个反应

网页演示在Firefox上错误显示

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Firefox 105.0(64位)可复制演示链接 https://grapesjs.com/demo.html描述一下那个虫子 如何复现这个漏洞?在Firefox中打开演示页面(https://grapesjs.com/demo.html)。 预期的行为是什么? 工具栏没有放大到你看不到网站的程度。 目前的行为如何? 工具栏的放大幅度肯定比平时高出300%。 Google Chrome 示例: ![正确](https://user-images.githubusercontent.com/7903248/191632720-57ebb0fb-6cef-...

artf

是的,谢谢@Akira-Kuru在这里解决了这个问题 https://github.com/artf/grapesjs-preset-webpage/releases/tag/v1.0.2

ClaudeCode

谢谢你举报,@Akira-库鲁。 关于 Firefox 上网页演示错误显示的问题,真是个好问题。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('somethi...

#46012022年9月21日作者 bit-ocean4 个回答
1 个反应

在切换某些目标时,添加到样式管理器的自定义类型 update() 不再被触发。

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬104 可复制演示链接 https://jsfiddle.net/aw8p0h9j/ 描述一下那个虫子 如何复现这个漏洞?打开 jsfiddle 链接。点击两个div之间,然后在任一div和背景之间点击。 预期的行为是什么? 在较早的 grapesjs 版本(0.17.26)中,更新会被触发,控制台记录点击,执行 update() 代码。 目前的行为是什么? 在 grapesjs 0.20.1 版本中,切换不同目标时更新不会触发,至少在 1 个目标之间是这样。组件无房产价值,2.组件价值相同,...... JS: “''js const edito...

ronaldohoch

和这里描述的一样,没问题:https://github.com/artf/grapesjs/issues/4350

artf

是的,但即使是自定义UI,如果值没变,更新也会被跳过,因为没必要。

bit-ocean

我粘贴的代码是用标准API,基本上是从文档里复制粘贴的。显然,更新的机制在不同版本之间已经发生了变化。 之前如果目标元素被更改,更新会被触发,我们可以运行代码在特定条件下重新渲染组件。@artf你现在会提出什么最佳替代策略?我应该添加自定义监听器来针对变更事件吗?你有什么建议的实现方式,才能确保更好地跟进Grapesjs的核心变更? 简而言之,当目标被更改时,我需要能够调用可调用的对象,同时获取并设置自定义类型输入的值。

#46002022年9月20日作者 Aventrue3 个回答
0 个反应

从 0.19 更新到 0.20 后,会出现错误:Cannot assign to only only 属性,object '[object Object]' 的默认值

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 镀铬 可复制演示链接 没有 描述一下那个虫子 ![图片](https://user-images.githubusercontent.com/17627637/191345937-46111515-ce5f-4cb4-a52c-e9300751717f.png) image.js: ![图片](https://user-images.githubusercontent.com/17627637/191346008-51a5519f-0a82-462e-9c00-904dc41602f8.png)行为准则 [X] 我同意遵守本项目的行为准则

collins-lagat

新闻稿中说有重大变更。试试看,看看问题是否会消失。我也遇到同样的错误,但还没试过修复方法。 https://github.com/artf/grapesjs/releases/tag/v0.20.1

artf

是的,正如发布说明中提到的,自定义组件注册必须从旧的遗留API切换。

ClaudeCode

谢谢你举报,@Aventrue。 从 0.19 更新到 0.20 后,出现“无法将只读属性 assign to read only”[object Object]' 的错误发生,这似乎是一个竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请...

#45922022年9月15日作者 harsh2011 个回答
0 个反应

文本组件在文本块中丢弃后变为不可编辑

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 104.0.5112.102 可复制演示链接 https://jsfiddle.net/harsh201/obng5cy2/ 描述一下那个虫子 如何复现这个漏洞?在文本块内拖拽“Textable Component”。尝试编辑可文本块内的文本。 预期的行为是什么? 当双击可文本组件时,光标应移动到可文本块,因为它正在扩展文本。 目前的行为是什么? 当双击可文本组件时,光标仍聚焦于父文本块,焦点不会切换到文本组件。 粗略浏览时,每当我们双击文本块时,“contenteditable”属性会变为true,允许用户编辑该文本块。同样的行为也适用于嵌套在文本...

ClaudeCode

谢谢你举报,@harsh201。 关于文本组件在文本块中丢弃后变成不可编辑的建议很棒!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:*”事件...

#45882022年9月14日作者 wunksert2 个回答
0 个反应

API 文档配置对象链接失效

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 狩猎 可复制演示链接 https://grapesjs.com/docs/api/editor.html#editor 描述一下那个虫子 如何复现这个漏洞?访问 https://grapesjs.com/docs/api/editor.html#editor在第2行和第33行点击“配置对象”。 或者访问此链接:https://github.com/artf/grapesjs/blob/master/src/editor/config/config.js 预期的行为是什么? 加载配置对象参考 目前的行为是什么? Github页面上的404 如果需要执行...

artf

谢谢@wunksert链接已经更新,下次发布时会修复

ClaudeCode

谢谢你举报,@wunksert。 关于API Docs配置对象链接坏了,这个问题很棒。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something ch...

#45802022年9月13日作者 Singwai2 个回答
0 个反应

如果提供了“mousePosFetcher”,调整光标的起始位置也应使用。

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 任何可复制演示链接 任何描述一下那个虫子 如果有覆盖功能,启动POS也应该使用'MosePosFetcher'方法,对吧?开始 Pos ![图片](https://user-images.githubusercontent.com/5863227/189769981-c1d875e4-beeb-44b4-9963-f4131f3c3d6f.png) https://github.com/artf/grapesjs/blob/dev/src/utils/Resizer.js#L278-L281当前 Pos ![图片](https://user-images...

artf

是的,你说得对,我会修好的,谢谢你的反馈。

ClaudeCode

谢谢你举报,@Singwai。 Resizer 光标起始位置的问题,如果提供了“mousePosFetcher”,也应使用。 似乎是竞赛条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(...

#45792022年9月13日作者 Singwai2 个回答
0 个反应

Resizer onEnd 回调应包含类似于 onStart 的 resizer 和 el 对象

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 任何可复制演示链接 代码请见截图描述一下那个虫子 有什么因素阻止我们在onEnd回调中添加调整尺寸和EL吗?因为我们正在重复使用缩放实例(除非是 forceNew)。我希望在调整尺寸结束时能清理一下调整尺寸的状态启动 https://github.com/artf/grapesjs/blob/dev/src/utils/Resizer.js#L295 ![图片](https://user-images.githubusercontent.com/5863227/189768636-903f2a1c-e99d-47dd-8f60-7ddbb9e1a61d....

artf

当然,我会补充,谢谢你的建议。

ClaudeCode

谢谢你举报,@Singwai。 Resizer onEnd 回调应包括 resizer 和 el 对象,类似于 onStart 的问题,似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复...

#45772022年9月12日作者 joukhar2 个回答
0 个反应

防止使用自定义插件发生事件

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome最新可复制演示链接 没有演示描述一下那个虫子 我想阻止事件,但我做不到,我试过了 以及如何预防商店事件,请帮帮忙 “''js editor.off('asset:upload:error'); editor.on('asset:upload:error', function(e) { e.preventDefault(); console.log(e); }) ```行为准则[X] 我同意遵守本项目的行为准则

artf

如果你有问题可以用讨论区,问题只针对可复现的漏洞

ClaudeCode

谢谢你举报,@joukhar。 关于防止使用自定义插件发生事件的好问题。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')...

#45762022年9月12日作者 benryanwilliams4 个回答
1 个反应

点击“样式环绕”按钮会影响同一文本框内其他组件的内部组件

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome 104.0.5112.101可复制演示链接 https://jsfiddle.net/7cLr0xt2/3/描述一下那个虫子 如何复现这个漏洞? 不知为何,我无法在上面链接的小提琴里重现这个bug,因为第34行“selectedComponent.components('<span liquid=”if contact.id“>jhbjhhgjj</span> <span liquid=”else“>qwewqeqwe</span>')''并不能替换组件的内部组件,所以我只能分享一个项目中发生的情况视频,步骤如下:双击“Hello Worl...

artf

RTE在编辑时依赖于DOM内容,所以如果你故意用类似的程序删除它 “''js onRender() { this.el.innerHTML = this.model.get(“displayedText”) }, ``` 编辑完成后,内部组件将被移除。

benryanwilliams

好的,谢谢@artf,这说得通。 然而,那些代码行,以及 必须在画布内渲染正确的选中状态(包括组件最初渲染时以及用户选择不同的“if”状态,从而改变“displayedText”): https://user-images.githubusercontent.com/67364267/189854125-9544d34b-2f71-4b0c-872e-dbdfb2232fd9.mov 你能想到用RTE编辑后保留内部组件的方法吗?也许我可以把这些内部组件存储在“条件文本”组件...

benryanwilliams

我还需要做更多测试,但看起来我通过在创建/编辑组件时保存内部组件,然后使用'rte:disable' 钩子,如下,解决了这个问题: 这看起来有点老套,如果你能想到更好的方法,请告诉我。

#45752022年9月10日作者 Aventrue3 个回答
1 个反应

AssetManagerConfig 中缺少自定义功能

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 这是一个编译错误 描述一下那个虫子 AssetManagerConfig 中缺少属性自定义。 如果我用未分类的葡萄,它能行,但我想用它来搭配类型。有没有解决这个问题的解决办法? 我会像这里描述的那样做:https://grapesjs.com/docs/modules/Assets.html#customization ![图片](https://user-images.githubusercontent.com/17627637/189477806-df81bcab-9a07-41f6-b886-418972df5d17.png...

Singwai

欢迎随时更新类型定义,这里有一个提交的示例。 https://github.com/artf/grapesjs/commit/49deeeeab74aff3e46f22d0bb06e7f7608955afd

Aventrue

我的变通方法: let assetConfig: grapesjs.AssetManagerConfig = {}; assetConfig[“custom”] = { 开场:(道具)=> { this.openGalleryDialog(道具); }, 接近:(道具)=> { this.dialog.closeAll(); }, };

ClaudeCode

谢谢你举报,@Aventrue。 AssetManagerConfig中缺少自定义的问题似乎是竞赛条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:** 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于...

浏览所有主题