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

GrapesJS 问题

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

找到 231 个问题

🔍 general
#66552025年11月20日作者 yvoroniak-infusemedia3 个回答
1 个反应

我在正确换色时遇到了colopicker的卡顿问题

https://github.com/GrapesJS/grapesjs/blob/f59e981f76ff378f59c06cf706af88e502db098e/packages/core/src/utils/ColorPicker.ts#L2407C5-L2415C6 我追溯到这些线,发现当将HEXA转换成RGBA时,这些线条会导致结果混乱。 有没有特别的理由要刻意支持传统ARGB?

artf

谢谢你的报告。这本该在这里解决 https://github.com/GrapesJS/grapesjs/pull/6672

yvoroniak-infusemedia

例如: “#ff000077”(透明红色)正在转换为“#000077”(蓝色调)。 我试过用 Monkey Patch 它,但感觉 Grapes JS 内部使用自己的实现,而不是绑定在 Windows 上的那个。(对我来说很不幸) 如果能修复这个问题或者让这些功能自由定制就好了。 谢谢。

GJS Helper

你提到的 GrapesJS ColorPicker 在正确颜色转换时遇到困难的问题,特别是从 HEXA 到 RGBA,以及你对潜在遗留 ARGB 支持的观察,都反映了对十六进制色彩格式的普遍误解。你提到的 GrapesJS ColorPicker 工具(packages/core/src/utils/ColorPicker.ts#L2407C5-L2415C6)是用 alpha 通道解析标准 CSS 十六进制颜色值,这些通道遵循 #RRGGBBAA 格式。在此格式中: RR...

#66542025年11月19日作者 zjt-dev4 个回答
0 个反应

富文本编辑器无法激活

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...' 来强制执行。

#65182025年5月14日作者 jaredtmartin2 个回答
0 个反应

入门指南没有按原文显示模块

GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 136.0.7103.93 可复制演示链接 https://jsfiddle.net/j826eL51/ 描述一下那个虫子 如何复现这个漏洞? 按照“入门指南”页面的步骤操作 当你进入添加方块时,方块不会出现。 预期的行为是什么? 方块应该会出现 目前的行为是什么? 他们没有出现 这可能和另一个问题有关: https://github.com/GrapesJS/grapesjs/issues/2186 但不知为何,入门功能即使更新了CDN,也无法按原文操作。 行为准则 [x] 我同意遵守本项目的行为准则

artf

谢谢你的报告@jaredtmartin

GJS Helper

你遇到的问题,就是按照GrapesJS“入门指南”操作时没有显示区块,这其实是因为你grapesjs.init选项的配置错误,特别是与blockManager和panels设置有关。 根本原因分析 你提供的JSFiddle(https://jsfiddle.net/j826eL51/)包含两种主要配置,防止块在默认GrapesJSUI中显示: blockManager.appendTo: '#blocks':你明确告诉GrapesJS将块附加到带有 ID blocks的 H...

#64482025年3月15日作者 brighterfrog2 个回答
0 个反应

功能请求:暗黑模式支持

功能描述 在编辑器界面中添加暗黑模式支持。 动机 减少夜间发育时的眼睛疲劳 符合现代UI/UX标准 支持系统级暗模式偏好 拟议实施 添加暗色模式色彩调色板 创建主题切换机制 用户偏好的持久化 添加系统主题检测 补充背景 许多用户在夜间工作,并请求了此功能。

artf

与[这里](https://github.com/GrapesJS/grapesjs/issues/6446#issuecomment-2729421252)相同

GJS Helper

为GrapesJS添加暗黑模式支持涉及CSS主题、用于主题切换和持久化的JavaScript,以及与系统偏好设置的集成。虽然GrapesJS没有内置暗黑模式切换,但其模块化特性允许实现稳健的自定义实现。以下是详细的做法: 1.定义暗模式色彩调色板(CSS) 实现主题最有效的方法是使用CSS变量。你需要为光源主题定义一组变量,然后在应用到编辑器根元素的.theme-dark类(或类似类)中覆盖它们。这个自定义CSS应在GrapesJS默认样式之后加载,以确保覆盖生效。 首先,...

#64472025年3月15日作者 brighterfrog2 个回答
0 个反应

故障报告:导航菜单无法响应

描述 导航菜单无法正确响应移动设备上的屏幕尺寸变化。 繁殖步骤 打开页面构建器 添加导航菜单组件 在移动设备上预览或调整浏览器窗口大小 观察菜单行为 预期行为 菜单在移动端应合并为汉堡菜单 菜单项应合理间隔 下拉菜单应适用于触摸设备 当前行为 菜单在移动端扩展 项目重叠 触碰响应差 环境 浏览器:Chrome 120 设备:iPhone 13 操作系统:iOS 17

artf

@brighterfrog遵守漏洞报告模板很重要。 请开启一个有效的bug报告(附带可复现的演示)。

GJS Helper

你遇到的GrapesJS导航菜单在移动设备上不响应是常见的挑战,因为GrapesJS主要提供结构组件。实现一个完全响应式、可折叠的导航菜单(通常称为“汉堡菜单”)需要自定义的媒体查询CSS和切换功能的JavaScript。GrapesJS并不会自动将这种复杂行为注入默认组件中。 根本原因 GrapesJS导航栏组件默认提供基本的nav结构,通常使用 flexbox 进行水平排列。然而,它不包含隐藏完整菜单并在小屏幕上显示汉堡图标的具体 CSS 媒体查询,也不包含在点击汉堡图...

#62902024年11月4日作者 svex992 个回答
1 个反应

从项目数据加载数据源时,数据源会被忽略

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Firefix v132.0 可复制演示链接 https://jsfiddle.net/skdegqun/4/ 描述一下那个虫子 如何复现这个漏洞?运行小提琴的日志可以看出,编辑器初始化时传递的数据源未被加载。 预期的行为是什么? 将项目数据源加载到编辑器数据源管理器(editor.DataSources) 目前的行为是什么? 当编辑器加载项目数据时,数据源并未被加载,而是数据源列表是空的。 这个问题既在编辑器初始化时传递项目数据,也在从远程存储加载项目数据时出现(虽然在小工具里重现起来稍微难一些,但希望修复了第一个情况能解决这个问题)。我...

artf

你需要等编辑准备好再做。 “''js editor.onReady(() => { console.log(“数据来源总数应为1:”,编辑。DataSources.getAll().length) console.log('test-source should exist:', editor.DataSources.get(“test-source”)); }); ```

GJS Helper

你遇到的问题是GrapesJS DataSources模块在编辑器初始化或从存储加载时,不会自动从projectData中的dataSources属性中水化状态。虽然projectData用于加载核心组件、样式和资源,但DataSources模块需要显式填充。 根本原因: GrapesJS核心editor.load()方法负责处理projectData(初始化时传递或从存储中获取),主要关注加载主画布内容(组件)、样式和资源。其他专业模块,如DataSources,通常需要...

#62492024年10月23日作者 yashvi20263 个回答
0 个反应

最初的定制色彩选择器

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? 铬可复制演示链接 ---描述一下那个虫子 editor.getModel().initBaseColorPicker(DomElement, { / spectrum options / }); 在内化之后,当 palete 打开时,我想给它设置一个颜色?@artf 行为准则[X] 我同意遵守本项目的行为准则

NeonLexie

这看起来很有趣。我倒是愿意试试看。

yashvi2026

GJS Helper

要为初始化为 editor.getModel().initBaseColorPicker()的自定义颜色选择器设置初始颜色,你需要在Spectrum.js选项对象中传递 color 选项。 GrapesJS的 initBaseColorPicker 方法内部使用 [Spectrum.js](https://bgrins.github.io/spectrum/) 作为颜色选择器功能,并直接暴露Spectrum.js选项。 解决方案 当你调用 initBaseColorPick...

#61802024年9月30日作者 padcom4 个回答
1 个反应

Trait 的“setValue()”方法在值变更时不会被调用

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome最新款 可复制演示链接 https://codesandbox.io/p/sandbox/withered-rgb-xmw8gk 描述一下那个虫子 如何复现这个漏洞?开放代码沙盒选择“body”(类型:“wrapper”)——观察从自定义源获取值的警报(调用 trait.getValue()尝试更改值(特质:自定义,唯一存在的)——注意“setValue()”未被调用,因为没有显示警报 预期的行为是什么? 会显示“将全局值设置为” + 值的提醒 目前的行为是什么? 未显示警报, trait.setValue() 方法未被调用。...

padcom

谢谢!我确认过了,一切正常!

padcom

据我所见,当“Trait.setValue()”值来自输入时不会被调用。取而代之的是调用“setTargetValue()”,但该程序不会检查特征定义中的“setValue()”方法是否存在。另外,'Trait.setValue()' 检查属性中的 'setValue' 键,而 'Trait.getValue()' 通过 'this.get('getValue')' 获得其自定义 getter (Trait.ts:303)

padcom

我尝试按照[这个](https://github.com/GrapesJS/grapesjs/discussions/5793)讨论来让它工作,但正如你在沙盒中看到的,它就是不行。

#61302024年9月7日作者 juverric1 个回答
0 个反应

---

---

GJS Helper

要创建带有可编辑文本、可编辑图片和自定义样式选项的自定义 GrapesJS 组件,你需要用 editor.DomComponents.addType 定义一个新的组件类型,然后将其注册为一个块。这允许用户拖拽组件,通过特征编辑其内容,并通过样式管理器修改其外观。 步骤1:定义自定义组件类型 我们将创建一个包含标题、描述和图片的“卡片”组件。我们会让文本和图片通过特征编辑,并添加自定义风格属性。 步骤2:将组件注册为块 定义好组件类型后,你需要在 GrapesJS 块面板中提...

#61162024年9月3日作者 SamMousa4 个回答
4 个反应

AsDocument 无法如预期工作

GrapesJS版本 [X] 我确认使用最新版本GrapesJS 你用的是什么浏览器? 铬128 可复制演示链接 https://jsfiddle.net/sammousa/bxgsdc12/11/ 描述一下那个虫子 如何复现这个漏洞?通过选项{asDocument: true}加载一个带有非空<head>的 HTML 字符串。通过editor.getProjectData()导出数据,确保包含<head>内容通过editor.loadProjectData()加载从2导出的数据 通过editor.getProjectData()导出数据,确保它没有<head>内容 预期的行为是什么? 我预计这种情况应该始终成立,可能除了某些细节...

SamMousa

谢谢,但这不是重点。我完全能找到一个变通方法,但这并不能解决这个bug。 bug是通过“getProjectData()”导出,然后通过“loadProjectData()”导入,应该会得到相同的状态。 而且你提议的改版实际上是直接写入画布,这意味着不能保证画布会完全不被动。(例如编辑器中有个“样式”配置,可以将样式注入画布头部)

artf

这个bug是,先通过getProjectData()导出,再通过loadProjectData()导入,应该会得到相同的状态。 是的,绝对不是预期,我们会去了解的。 感谢演示👍中那些易于复现的步骤

artf

谢谢@SamMousa详细的bug报告总是欢迎的。 如果需要指引,我们很乐意为你指引方向 🙇 ♂️

浏览所有主题