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

GrapesJS 问题

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

找到 545 个问题

🔍 typescript
#56072024年1月10日作者 Ju99ernaut2 个回答
0 个反应

无法扩展之前空过的图层

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v120.0.6099.199 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?将第1列方块拖到画布上将任何其他块拖入单元格,例如文本选择单元打开图层面板 预期的行为是什么? 我们应该能够展开单元格,并通过图层选择单元格内的元素 <img width=“1438” alt=“截图 2024-01-10 下午5 42 36” src=“https://github.com/GrapesJS/grapesjs/assets/48953676/043150f3-9c7...

artf

说得好,我会修好的

GJS Helper

这是GrapesJS中已知的一个漏洞,与图层面板(特别是Layer视图)对组件子集合变化的反应有关。问题出现在组件(如列或单元格)最初是空的,然后内容被拖入时。图层面板未能更新父组件的图层以显示展开/折叠的插入点,阻止访问其嵌套元素。 根本原因 GrapesJS中的Layer视图负责渲染图层面板中的每个项目,会监听其关联组件模型上的change:open和change:components事件,以决定是否渲染展开/折叠的插入点。然而,在Backbone.js(GrapesJ...

#55932024年1月3日作者 thigh4 个回答
0 个反应

图层管理器在页面切换时无法刷新

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? MS Edge 120.0.2210.91 可复制演示链接 无 描述一下那个虫子 如何复现这个漏洞?更新至最新版本 grapesjs 建立一个多页项目注意当前层管理器的层级结构调用 pagemanager.select(pageId) 方法,针对当前选中的页面以外的其他页面图层管理器仍然反映上一页的层级结构,尽管页面管理器显示新页面当前为激活状态,画布正确渲染新选中的页面降级到 grapesjs v0.21.6,重复步骤3-5。每当选择不同页面时,图层管理器都会正确反映活跃页面的层级结构 预期的行为是什么? ...图层管理器应更新以反映活跃...

artf

谢谢你的反馈@thigh会解决的

sunnynk19

你好,@thigh,看起来还是没用。你部署了最新的 npm 包吗?

artf

尚未出版,你可以在这里找到所有 https://github.com/GrapesJS/grapesjs/releases

#55842023年12月27日作者 vian0132 个回答
0 个反应

当所有组件都挂载到画布中时,“存储:结束:加载”事件不会触发

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v91 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞? 最近我必须将 grapesjs 0.14.62版本升级到最新版本(0.21.8)。在旧代码中,我们用“storage:end:load”来做一些操作,前提是所有组件都挂载到画布上。 但在当前版本中,它的工作方式已经不一样了。正如我在文档中看到的,“storage:end:load”现在会在存储加载请求完成后立即触发。有没有什么方法或其他事件能达到和之前相同的效果? 目前我只能在“storage:end:l...

artf

@vian013请只用可复现的演示链接打开bug问题,快速检查一下活动似乎正常运行

GJS Helper

从版本0.14.62到0.21.8,GrapesJS中storage:end:load事件行为的变化是有意为之,反映了更细致的事件系统。在新版本中,storage:end:load会在数据成功从存储管理器中检索时触发。这发生在组件解析、添加到编辑器模型树并随后渲染到画布之前,DOM.To 实现所有组件挂载到画布后才执行代码的预期行为,你应使用editor.on('load', ...)事件。### 根本原因与解释 storage:end:load事件的目的是表示存储加载过程...

#55832023年12月26日作者 ronaldohoch4 个回答
3 个反应

在移动端版本中,无法用样式面板设置背景:无

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Edge 最后版本 可复制演示链接 https://grapesjs.com/演示 描述一下那个虫子 如何复现这个漏洞?打开演示链接点击页眉 ![图片](https://github.com/GrapesJS/grapesjs/assets/2287371/c166B071-699d-4438-a3bf-0fb07607b45d)切换视图为手机或平板。尝试从头部移除背景。 预期的行为是什么? 那个编辑器把 background:none 的头部设置成了 目前的行为是什么? GrapesJS 继承自“桌面”版本,所以无法从移动端移除背景。 使...

artf

这不是bug,而是缺失的功能,我们需要用新的配置扩展栈类型,以实现“空”值。 我会尽量在下一个版本里加入。

artf

de 属性 Background 中的清除图标会完全移除所选设备的属性,使其再次继承桌面设置中的值。 正确图层行中的清除图标会重置栈值,将所选设备的属性设为默认值,移除背景,且不会继承桌面设置。在同一个清除图标中再次点击,该图层会完全移除。 我不确定这是否完全是我想的,但想法是让它按原样工作,但加入一个额外的逻辑,当我移除最后一层时,如果存在新的属性(例如“emptyValue”),我会应用。 这是一种可能的属性类型 “''js emptyValue?: string |(...

gustavohleal

我已经为栈类型插入了一个解。我打算做一个PR,但我想先问你一个问题。我添加的行为是: ![图片](https://github.com/GrapesJS/grapesjs/assets/22385451/31b5aa67-1de4-4430-a439-e41d6b1cbb21)图层行中的清除图标会重置堆栈值,将所选设备的属性设为默认值,移除背景,且不会继承桌面设置。在同一个清除图标中再次点击,该图层将完全移除。de 属性 背景中的 clear 图标会完全移除所选设备的属性,...

#55702023年12月20日作者 prateekkumar-ec3 个回答
0 个反应

导入按钮是从所有页面移除所有样式。

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome 最新版本 可复制演示链接 无(如有需要,我可以分享视频以便进一步交流) 描述一下那个虫子 如何复现这个漏洞?假设你当前页面上有一些内容,上面有一些样式。现在在同一项目中创建一个新页面。点击编辑器标题上的导入按钮,弹窗保持空,然后点击弹窗的导入按钮。现在去检查第一页。它会丢失所有的CSS。 预期的行为是什么? 如果你在其他页面导入内容,第一页应保持不变。 目前的行为是什么? 一个页面的样式会因另一个页面没有导入任何内容而受到影响。 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: 行为准则 [X] 我同意遵守本项目的行为准则

afrinxnahar

如果你能附上一个视频,那就太好了。我不太确定弹出窗口的空功能

artf

@prateekkumar-ec,这不是核心相关的问题。

GJS Helper

这是与 GrapesJS core:import-code 命令处理空CSS输入时的一个已知问题,尤其是在多页面设置中。当点击导入按钮且弹窗中的CSS输入字段为空时,命令内部执行 editor.setStyle('')。此操作清除 GrapesJS CssComposer中当前活跃页面的所有CSS规则。 根本原因 core:import-code 命令设计用于导入 HTML 组件和 CSS 样式。当你将 CSS 输入留空并点击导入时,命令会收到一个空字符串作为 css 选项...

#55562023年12月13日作者 pittleCheung2 个回答
0 个反应

课程太多会导致网页崩溃

GrapesJS版本 [X] 我确认使用最新版本GrapesJS 你用的是什么浏览器? 最新版本的Chrome浏览器 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞? editor.addComponents(` <ul class="mb-5 flex list-none flex-row flex-wrap border-b-0 pl-0" role=“tablist” data-te-nav-ref > <li role=“演示”> <a class="my-2 block border-x-0 border-b-2 border-t-0 border-tra...

artf

已经报告并修复了 https://github.com/GrapesJS/grapesjs/issues/5525

GJS Helper

你遇到的问题是,当添加和选择包含大量实用类的元素时(尤其是像Tailwind CSS这样的框架或使用data-[...]属性的组件库),GrapesJS崩溃或无响应,是已知的性能瓶颈。 根本原因 GrapesJS默认会尝试解析 HTML 内容中发现的每个唯一类,并将其注册到内部类管理器中。这些类随后会在样式管理器面板中提供,供选择和取消使用。当添加一个具有极多实用类(例如 px-7 pb-3.5 pt-4 text-xs font-medium uppercase lead...

#55492023年12月6日作者 driskell4 个回答
0 个反应

MJ-预览不可编辑

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? 狩猎17可复制演示链接 https://grapesjs.com/demo-mjml.html描述一下那个虫子 如何复现这个漏洞?https://grapesjs.com/demo-mjml.html查看代码 - 复制MJML导入代码 - 粘贴 MJML 并添加到顶部 <mj-head><mj-preview>Some preview text</mj-preview></mj-head>现在尝试编辑它 <img width=“878” alt=“截图 2023-12-06 at 14 23 53” src=“https://github.co...

artf

这不是核心相关的问题,而且很可能根本不是问题,因为<mj-preview>默认在mjml插件中“''[不支持](https://github.com/GrapesJS/mjml/tree/master/src/components)

driskell

@artf 抱歉,我不太明白。这确实是个详细的问题。这需要在另一个仓库上提出吗?我对这里的内部结构不熟悉,所以不知道GrapesJS/mjml需要支持什么,才能让这个仓库不显示它

driskell

Head中记载: https://github.com/GrapesJS/mjml/blob/master/src/components/Head.ts#L14

#55452023年12月5日作者 AFriboulet-ii1 个回答
0 个反应

拖动组件类型 text trigger “rte:disable”

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 版本 119.0.6045.200 可复制演示链接 https://jsfiddle.net/d64pkcom/1/ 描述一下那个虫子 如何复现这个漏洞?在 Canvas 中拖拽组件文本观看jsfiddle控制台 预期的行为是什么? 不要触发RTE:禁用 目前的行为是什么? 触发RTE:禁用 https://github.com/GrapesJS/grapesjs/assets/128728949/b7fc7998-aeef-47d5-84f4-af74966d56cf 行为准则 [X] 我同意遵守本项目的行为准则

GJS Helper

你准确地识别出GrapesJS中一个小但意外的行为:当从块面板拖拽新组件(比如文本块)到画布时,触发了rte:disable事件。这确实不是预期的行为,因为富文本编辑器(RTE)只有在之前在所选组件上激活时才应该被禁用。 根本原因 rte:disable事件由GrapesJS RTE模块在其disable()方法被调用时发出。该方法通常在取消选中具有活跃RTE的组件,或编辑者内部状态要求停用RTE时调用。在从块面板拖拽操作时,GrapesJS的内部逻辑可能执行隐式触发“清除...

#55422023年12月4日作者 brenoassp2 个回答
2 个反应

错误 YouTube自动播放

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome 119.0.6045.200 64位 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?拖拽视频块到画布中点击视频,选择YouTube作为提供者。添加任何视频ID,比如lDK9QqIzhwk,并勾选自动播放选项。点击查看代码按钮,查找生成的iframe。URL大致是: https://www.youtube.com/embed/lDK9QqIzhwk?&autoplay=1&muted=1。 预期的行为是什么? 预期的行为是自动播放生成的HTML视频。 目前的行为...

artf

看起来静音属性在Vimeo上是正确的,但YouTube上不行。我会推修,谢谢。

GJS Helper

感谢你报告这个问题并进行全面调查。你已经正确找到了根本原因和可用的解决方案。这确实是 GrapesJS默认YouTube视频组件中的一个bug。 根本原因分析 问题源于 GrapesJS 用来静音YouTube视频的参数与YouTube的iframe API实际预期参数不匹配。 GrapesJS 目前使用的 muted=1: GrapesJS video 组件在生成 YouTube iframe 的 src URL 时,如果启用“静音”选项,会在查询参数中添加 muted=...

#55362023年11月29日作者 adiux1 个回答
0 个反应

无法添加链接:getModel() 失败,TypeError: $ 不是函数

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome 版本 119 可复制演示链接 https://jsfiddle.net/bj7afw63/1/ 描述一下那个虫子 如何复现这个漏洞?装填小提琴尝试添加默认RTE(非CKE)的链接界面中没有任何变化,控制台出现 JS 错误:TypeError: $ 不是函数 预期的行为是什么? 在 mj-text 组件的界面中添加了一个链接。 目前的行为是什么? 链接未被添加。 我目前发现的 我追踪到GJS方法的错误:[getModel()](https://github.com/GrapesJS/grapesjs/blob/149a9b2ad...

GJSBlock

谢谢你举报,@adiux。 关于无法添加链接:getModel() 失败,TypeError: $ 不是函数,这个问题很棒。ProseMirror 推荐的方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => co...

浏览所有主题