PageKit — 可自托管的 GrapesJS 建站工具,附完整源码。 获取抢先体验

GrapesJS 问题

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

找到 545 个问题

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

Custom is missing in the AssetManagerConfig

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

Singwai

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

Aventrue

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

GJSBlock

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

#45592022年9月6日作者 DhanaDSP11204 个回答
0 个反应

RTE actions are not working after the first time

嗨..!,RTE操作第一次后就不起作用了,当我们尝试对之前应用的元素应用该动作时,它无法正常工作 从版本0.18.3到最新版本都会出现这个问题,以下版本运行正常 复制链接 工作版本: https://jsfiddle.net/76gnxh4d/35/ 无法正常工作的版本: https://jsfiddle.net/76gnxh4d/36/ 演示: ![Grapesjs版本问题](https://user-images.githubusercontent.com/54067384/188276505-70b8ead9-f0e4-4d82-ae31-09ae478ef468.gif) Originally由@DhanaDSP1120在...

artf

应该会在最新版本(https://github.com/artf/grapesjs/releases/tag/v0.20.1)中修复。

DhanaDSP1120

@artf 字体颜色只能工作,字体背景色第二次不工作 https://jsfiddle.net/a3xgLm7c/3/ ![Val 5](https://user-images.githubusercontent.com/54067384/199990775-a8a3c5dd-d943-4f6a-b473-0af7d6ebf8ac.gif)

Sivaganesh-Akula

你好@DhanaDSP1120,我也遇到同样的问题。你有解决办法吗?

#45582022年9月6日作者 DhanaDSP11203 个回答
1 个反应

Grapesjs goes out of memory Issue

同时在文字上连续用粗体斜体并下划线。一旦打开图层管理器,就会发生了,而且 它只在 V0.18.2 和更低版本中正常工作 复制链接 工作版本: https://jsfiddle.net/76gnxh4d/39/ 无法正常工作的版本: https://jsfiddle.net/76gnxh4d/40/ 演示: ![Grapesjs版本第2期](https://user-images.githubusercontent.com/54067384/188277178-5cd2021d-5070-411f-9b71-ae339f64c5d6.gif) Originally由@DhanaDSP1120在 https://github.com/...

artf

@DhanaDSP1120看起来是压力的边缘情况,没人真正关心,但如果你想深入探讨,我愿意合并一个PR

DhanaDSP1120

@artf问题未解决

GJSBlock

谢谢你举报,@DhanaDSP1120。 感谢你分享关于Grapesjs 记忆消失问题的报告。为了帮助团队调查和优先排序: 请提供: 一个最小可复现的例子(CodeSandbox/JSFiddle) 你的 GrapesJS 版本号 浏览器和操作系统信息 浏览器控制台的任何错误信息 重现问题的步骤 最有帮助的是什么: 简约代码示例(不是你整个项目) 屏幕录制或截图显示问题 明确区分预期行为与实际行为 你用的配置 GrapesJS 有了这些细节,维护者可以更快地识别和优先排序修...

#45372022年8月29日作者 salemkode2 个回答
0 个反应

RangeError Maximum call stack size exceeded

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 勇敢 1.33.105 铬:96.0.4664.93 可复制演示链接 https://codesandbox.io/s/relaxed-mccarthy-v2e37w 描述一下那个虫子 如何复现这个漏洞?添加带有img或svg标签的组件类型将该组件添加到画布中 预期的行为是什么? 只要加法必须无误 目前的行为是什么? 它将会回归 RangeError Maximum call stack size exceeded 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: 行为准则 [X] 我同意遵守本项目的行为准则

artf

你好@salemkode基于[自定义组件处理](https://grapesjs.com/docs/modules/Components.html#how-components-work),通过设置“isComponent”返回“true”且无条件,产生最大调用堆栈问题。 它会不断创建新组件,因为你也有“components”属性,但由于新类型在栈顶且总是返回“true”,它会一直引用自己。所以我建议你正确调整你的“isComponent”方法,或者干脆把它移除。

GJSBlock

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

#45292022年8月24日作者 FaisalShaikhHA4 个回答
6 个反应

当我们用类“xyz”调整图片大小时,页面上同一类的所有元素也会被调整大小,因为编辑器会给这些类添加css。

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? 版本 104.0.5112.101(官方构建)(arm64)视频演示链接 https://d.pr/i/27EgH2描述一下那个虫子当我们调整带有“xyz”类的图片大小时,页面上所有同类元素也会被调整大小,因为编辑器会为这些类添加高度、宽度、CSS。但当我从图片中移除所有类时,编辑器会用 ID 来设置 CSS 的高度宽度。我正在编辑器中加载一个引导模板。 录音链接:https://d.pr/i/27EgH2 繁殖步骤:加载引导模板进行编辑。添加多个带有影子类的分区,例( )将一张图像放入带有阴影类的 div 中,然后尝试调整图像大小。注意所有d...

DevMetwaly

https://grapesjs.com/docs/modules/Components.html#components-css组件优先的样式 默认情况下,当你在画布中选择组件并应用样式时,会对其现有的类进行更改。这会导致所有应用类别的组件发生变化。如果你只想对特定选定组件应用样式,就必须通过这种方式选择 componentFirst 策略。

FaisalShaikhHA

谢谢,@DevMetwaly有效,抱歉我错过了。

FaisalShaikhHA

你好,@artf,首先,这个框架非常棒,感谢你让它开源。 正如上面评论里描述的,我遇到了这个奇怪的问题,如果我做错了什么或者有解决办法,请告诉我,谢谢。

#44972022年8月3日作者 benryanwilliams4 个回答
3 个反应

从 v18.4 更新到 GrapesJS v19.5 会导致 Chrome 变得无响应

GrapesJS版本[x] 我确认使用最新版本GrapesJS你用的是什么浏览器? Chrome 104.0.5112.79可复制演示链接 https://jsfiddle.net/gvrnw2c3/4/描述一下那个虫子 如何复现这个漏洞? 我目前无法用 jsfiddle 重现这个 bug,这让我觉得可能是 Chrome 的问题,但我会继续尝试重现。 Within我的项目,如视频所示: 1)点击一个“条件文本”组件(我添加了的自定义组件类型) 2)点击“打开条件”按钮,然后在屏幕上出现的对话框中点击“应用” 3)将光标悬停在“条件文本”组件上 In JSFiddle(目前没有崩溃,但我会继续测试): 1)点击“Hello Worl...

tyuterry

小提琴(vue)的复刻版 没有Vue我无法复制 [小说](https://jsfiddle.net/6qp48xyn/) 重现问题的步骤:添加文本组件选择文本组件,然后点击底部的“转换为条件”按钮将鼠标悬停在条件文本组件上,然后它会冻结。 好像有什么东西总是在悬浮上一直触发 ![图片](https://user-images.githubusercontent.com/30591406/184062993-73d84ef7-0c07-4832-bd7b-9ac6d3851a...

artf

谢谢大家,我其实通过在Vue里打包这个示例还原了它,但我不太清楚为什么会被困在这个循环里。 乍一看,似乎与Vue的Proxy观察者有关。通过与之前的 Grapesjs 版本对比,似乎并非所有部分都被 Proxies 转换,这避免了卡住。 一个快速的变通方法是把“编辑器”放在Vue之外,防止所有对象都变成代理。 “''js 让编辑; Vue.createApp({ mounted() { editor = grapesjs.init({ ... }); // ... }, /...

benryanwilliams

谢谢@artf,现在在Vue实例外声明编辑器后,一切都完美运行了。

#44962022年8月3日作者 bovealexandre4 个回答
0 个反应

SetStyle

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome 最新版本可复制演示链接 没有,因为它有太多React等自定义代码描述一下那个虫子 如何复现这个漏洞? 用 setStyles 向编辑器添加更多样式 这是我在 setStyles 里用过的字符串 预期的行为是什么? 在编辑器中添加多种样式 目前的行为是什么? 只加那些孩子,更奇怪了 所以目前只添加了这些 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: 无需代码测试,只需 edit API 中的 setStyle 即可 行为准则[X] 我同意遵守本项目的行为准则

bovealexandre

当我试图添加这个时 它只是增加了这一点

artf

@bovealexandre至少提供一个简易可复现的例子,因为从我目前看到的情况来看,可能是你的自定义代码导致的

bovealexandre

@bovealexandre至少提供一个最小可复现的例子,因为据我目前看到,可能是你的自定义代码导致的 好的,我刚刚在我的scss编辑器上做了editor.getCss({ keepUnusedStyles: true }

#44892022年7月30日作者 contentfree4 个回答
0 个反应

从设计模式项目加载初始项目数据会导致画布大小错误

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v103 可复制演示链接 https://codesandbox.io/s/laughing-austin-k12mc3?file=/index.js 描述一下那个虫子 如果你查看链接的CodeSandbox并找到注释显示的projectData行,你会发现画布的大小被调整成了设备指定的大小。在调试器中, updateDim 初始化时似乎会多次调用:第一次是正确的设备大小,第二次是空的宽度和高度,这导致gjs帧封装器的尺寸被移除。 行为准则 [X] 我同意遵守本项目的行为准则

contentfree

我可以通过以下方式强制调整到正确的画布尺寸:初始配置中未提供 projectData,通过“editor.loadProjectData(...”)加载 projectData(...)在初始化和然后运行编辑器。Canvas.getModel().updateDevice();'虽然它会从全宽动画回到设备大小。 看起来加载项目数据是在默认设备渲染(可能)之后,某种程度上会压缩当前帧,重新渲染一些默认画面。(我不知道默认配置是什么,因为我只提供了一个设备配置,而第二个渲染时似...

artf

谢谢@contentfree我会尽量在下一次发布时修复这个问题

contentfree

谢谢@artf。我会留意下一次发布(看起来你的看板现在空了......所以应该很快就会被发现?)

#44812022年7月27日作者 skru2 个回答
0 个反应

V0.19.5 Breaks headless editor.setComponents() (with Map/Video block)

GrapesJS版本 [X] 我确认使用最新版本GrapesJS 你用的是什么浏览器? Chrome 102.0.5005.115(官方版本)(64位) 可复制演示链接 描述一下那个虫子 这是#4473的延伸 在无头环境中通过editor.setComponents()添加地图或视频块时,也会出现类似的“文档未定义错误”,源自./src/dom_components/model/ComponentImage.js,parseUri() 尝试使用文档对象。 我不得不迅速修复,因为它是产品发布的瓶颈。我重构了 parseUri() 方法,使其看起来像这样(测试通过且无错误): parseUri(uri) { let uriParams...

artf

谢谢@skru我其实已经处理好了 parseUri [这里](https://github.com/artf/grapesjs/commit/f61222ec904ed56794f7b97e362ea2006dfceaf6),所以下次发布应该能用

GJSBlock

谢谢你举报,@skru。 v0.19.5 导致 headless editor.setComponents()(带地图/视频块) 的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复...

#44802022年7月26日作者 ValouZ2 个回答
0 个反应

Iframe on a block can't be edited

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Firefox v102.0.1 可复制演示链接 这是工作代码,我不能...... 描述一下那个虫子 如何复现这个漏洞?拖放到页面块 视频你会发现你对我的iframe无能为力 预期的行为是什么? 我希望iframe的src可以编辑 目前的行为是什么? iframe没法用。 我在图层管理器上能看到Iframe,但如果我打开检查器,只有包含Iframe的部分。 这东西在两三周前还很糟糕,我去度假了,没人碰它,因为只有我一个人在修,现在它坏了。 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: 希望你能帮帮我,非常感谢! 行为准则 [X] 我...

artf

感谢@ValouZ的报告,iframe视图上确实有个拼写错误。我会在下次发布时处理好。

GJSBlock

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

浏览所有主题