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

GrapesJS 问题

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

找到 3,464 个问题

#51352023年5月22日作者 duclet2 个回答
0 个反应

StyleManager.addProperty 的类型定义错误

GrapesJS版本 [X] 我确认使用最新版本GrapesJS 你用的是什么浏览器? 全部 可复制演示链接 没有 描述一下那个虫子 如何复现这个漏洞?根据这里的定义:https://github.com/GrapesJS/grapesjs/blob/dev/src/stylemanager/index.ts#L304,你应该提供optionsPropertyProps的选项。然而,这里定义的PropertyProps:https://github.com/GrapesJS/grapesjs/blob/dev/src/stylemanager/model/Property.ts#L9,并不具备此类属性。这导致TS编译器发出了投诉。...

SachinPuthiyoth

看起来 StyleManagerConfig.sectors 中的类型定义没有变化 : https://github.com/GrapesJS/grapesjs/blob/5c890449a52f526bc480d6dc649ff5e01ec59140/src/stylemanager/config/config.ts#L8 我们是不是应该更新它,使用像 PropertyTypes 这样的功能: https://github.com/GrapesJS/grapesjs/bl...

GJS Helper

感谢您报告此问题。在查看GrapesJS源代码,特别是 dev 分支和最新的稳定版本(0.21.10时),发现 PropertyProps 接口确实包含了 options 属性。因此,StyleManager.addProperty 的类型定义应是正确的,允许你在 PropertyProps 对象中提供options而不会导致 TypeScript 编译器错误。 让我们澄清当前类型的定义: 1.PropertyProps 接口 PropertyProps接口定义于src/s...

#51342023年5月20日作者 yashvi20261 个回答
0 个反应

用命令启用默认的RTE

GrapesJS 版本 [x] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v91 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 我想用一个命令触发rte,我找到了enableEditing但不起作用,有没有命令可以触发RTE吗 行为准则 [X] 我同意遵守本项目的行为准则

GJS Helper

你遇到的问题是, enableEditing 并不是一个用于程序触发富文本编辑器(RTE)的公开命令或方法 GrapesJS。 GrapesJS 中的 RTE 通常在选择并聚焦某个文本组件时会自动启用。不过,你可以通过创建自定义命令,直接与组件的 RTE 实例交互来实现程序激活。 根本原因 GrapesJS的 RichTextEditor 模块管理 RTE 实例。当选择文本组件时, GrapesJS 内部检查是否可编辑,然后启用其关联的 RTE。没有像 enableEdit...

#51312023年5月20日作者 sdimitrenco2 个回答
0 个反应

JSON.stringify 之后,组件并非所有字段都存在

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? 铬可复制演示链接 https://jsfiddle.net/sdimitrenco/rn8u4pc0/7/描述一下那个虫子 我不确定这是不是bug,但对我来说,这种行为看起来很奇怪 我有一个组件列表,包含组件ol和组件LI。 那个代码,代表阻挡 组件列表的模型 这个模型用于 ol 分量 以及锂分量的模型 如你所见,所有模型都包含类型和标签名称,内部 grapes 正常,但如果我尝试转换成json,比如JSON.stringify(this.grapesInstance.getComponents()),我有个带有标签名的json缺失所有字段,看...

artf

如果属性的值与默认定义相同,则跳过。这由 ['avoidDefaults'](https://github.com/GrapesJS/grapesjs/blob/e217dc75d463a84333ee4d9f37216f4f56c77024/src/editor/config/config.ts#L250-L256) 配置选项控制,强烈建议尽量保持 JSON 小。

GJS Helper

这种行为不是bug,而是GrapesJS内部的有意优化,利用了Backbone.js模型。当你将GrapesJS组件序列化为JSON时,通常会省略与该组件类型默认值相符的属性,以减少序列化数据的大小。 根本原因 默认值优化:GrapesJS组件是骨干模型。当调用模型的toJSON()方法(JSON.stringify隐式使用)时,通常只序列化那些与模型定义的defaults值不同的属性。这是保持数据负载精简的常见模式。 你的自定义组件(list,ol,li):你在defau...

#51122023年5月14日作者 putzwasser4 个回答
0 个反应

GrapeJS/拖放在 Linux 和 Wayland 上的 Brave 上不起作用

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 版本 1.51.110 Chromium:113.0.5672.77(Offizieller 版本)(64位) 可复制演示链接 https://grapesjs.com/docs/getting-started.html#add-blocks 描述一下那个虫子 在Linux版Wayland(Arch Linux和Gnome)上,使用Brave时无法添加方块。拖放方块后它们在松开鼠标按钮后会消失,导致 GrapeJS 变得坏掉或没用。 我试过禁用Brave Shields和无痕模式,确保没有干扰JS。结果一样 如何复现这个漏洞?打开 grap...

artf

通过用同一个 Brave 版本(Mac 版)检查,拖放功能似乎正常,所以看起来不像是 GrapesJS 本身或浏览器的问题。 如果有其他人有类似经历或对这个问题有更多了解,请告诉我们。

gxanshu

我在Tauri上也遇到同样的问题。他们用的是WebGTK,拖放功能也没用

putzwasser

通过用同一个 Brave 版本(Mac 版)检查,拖放功能似乎正常,所以看起来不像是 GrapesJS 本身或浏览器的问题。 我觉得这不是一个有效的检查。你用Mac得到了完全不同的设置。我本以为这个问题可能和我具体的配置有关,但这并不意味着 grapesjs 方面没办法。 我不指望你去解决,因为这可能是个角落问题,资源有限。也许这甚至和在Wayland上使用Brave有关。

#51102023年5月13日作者 yashvi20262 个回答
0 个反应

“enableEditing”附加在视图上,你可以从模型中获取它的实例,所以选择该组件,在控制台“editor.getSelected().view.enableEditing()”中执行。

我正在获得 editor.getSelected().view.enableEditing();不是函数

artf

请避免在未遵循问题模板的情况下打开错误问题。 你可以用一个合适的描述和用例来开启新的讨论。

GJS Helper

错误editor.getSelected().view.enableEditing() is not a function之所以发生,是因为enableEditing方法并非直接在ComponentView实例上可用的公共API(editor.getSelected().view所指)。GrapesJS编辑器通过其专用的富文本编辑器(RTE)模块管理内联文本编辑,可通过editor.rte访问。 根本原因 GrapesJS Component模型(由editor.getSe...

#51092023年5月13日作者 yashvi20262 个回答
0 个反应

启用编辑无法正常工作

我尝试在Grapejs控制台启用编辑,但没有收到RTE,而是出现编辑器未定义错误

yashvi2026

如何使用“启用编辑” editor.getSelected().view.enableEditing(); 这会产生一个错误

GJS Helper

在浏览器控制台中尝试使用enableEditing时出现“编辑器未定义”的问题,表明GrapesJS编辑器实例在当前控制台的作用域中不可访问。enableEditing方法是GrapesJS编辑器对象的一部分,因此你必须有该对象的引用才能调用它。 根本原因 当你初始化GrapesJS时,grapesjs.init()方法返回一个编辑器实例。如果你没有将该实例分配给全局可访问变量(如 window.editor),或者初始化GrapesJS的脚本运行在不同的作用域(例如不全局...

#51072023年5月11日作者 siddhi13972 个回答
0 个反应

安装像 grapesjs basic block 或 tui-image-editor 这样的插件时,会在命名空间中出现错误node_modules。

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 匿名 描述一下那个虫子 如何复现这个漏洞?npm 安装 grapesjs-basic-blocks 中的任意插件之后运行应用程序,就像我用的是 Angular 应用一样 预期的行为是什么? 应该能正常运行 目前的行为是什么? 它会报错,因为命名空间 grapesjs 未找到或 tui-image-editor 找不到行为准则 [X] 我同意遵守本项目的行为准则

artf

如果你没有可重复的链接,请避免制造错误问题

GJS Helper

在 Angular 应用中安装 GrapesJS 插件如 grapesjs-basic-blocks 或 tui-image-editor 时出现的“命名空间未找到”错误,通常表明模块的导入和初始化方式存在问题,或者其依赖关系(如 tui-image-editor的 CSS )加载方式。在现代 Angular(TypeScript)环境中,你主要使用 ES 模块,插件通常期望通过 GrapesJS 编辑器实例初始化,而不一定依赖全局变量。 根本原因 错误的产生是因为插件或其...

#51052023年5月11日作者 Baghunts2 个回答
1 个反应

用(prop,value)来添加style o component,是不正确的工作。

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome@latest 可复制演示链接 https://no-link.com 描述一下那个虫子 ![图片](https://github.com/GrapesJS/grapesjs/assets/133208978/3a5ce51a-fedf-4fd7-9063-a5af519690b9) ![图片](https://github.com/GrapesJS/grapesjs/assets/133208978/0b990b40-94b1-48c1-94dc-c4d81ADF0368)行为准则 [X] 我同意遵守本项目的行为准则

artf

谢谢@Baghunts,发现得很好。目前的解决方法是 '.addStyle({ 'border-left': '...' })`

GJS Helper

GrapesJS中组件中没有正确应用background-image样式的问题通常有两个常见原因之一:CSSurl()语法错误,或者组件缺乏足够的维度来显示背景。 根本原因分析 缺少url()封装: 在 CSS 中设置background-image时,图像路径必须包含在 url() 函数中。如果你只提供 URL 字符串而没有url(),浏览器会将其视为无效的 CSS 值,样式不会被应用。 错误: "https://example.com/image.jpg" 正确: "u...

#50902023年5月3日作者 FaisalShaikhHA2 个回答
1 个反应

组件脚本函数在保存页面后运行两次

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 112.0.5615.137(官方配置)(arm64) 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 组件定义: 丢弃、保存和重新加载时,有两个地方调用同一个脚本。一个在保存的 HTML/JSON 里,另一个是 Grapesjs 自己添加的。 如何复现这个漏洞?添加带有脚本函数的自定义组件类型。放下它并保存页面。重新加载页面时,脚本函数运行两次。 预期的行为是什么? 脚本函数应该只运行一次。 目前的行为是什么? 脚本函数运行两次。 行为准则 [X] 我同意遵守本项目的行为准则

artf

正如[这里](https://grapesjs.com/docs/modules/Storage.html#project-data)解释的,编辑项目时不应重新导入输出HTML,只需导入JSON。

GJS Helper

你遇到的组件 script 函数在保存并重新加载页面后运行两次的问题,是 GrapesJS脚本管理系统中的已知行为(或者说是个 bug,视角度而定)。这源于 GrapesJS 如何处理和序列化组件脚本,用于编辑器画布和最终导出的 HTML。 根本原因解释 当你在GrapesJS组件模型中定义script属性为函数时,GrapesJS执行两个主要动作导致双重执行: 内联脚本嵌入: GrapesJS将脚本函数序列化成字符串,并直接嵌入组件HTML结构中的<script>标签中。...

#50892023年5月2日作者 davidrhoderick3 个回答
0 个反应

在SCSS中导入codemirror库时出现错误

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Firefox 112.0.1 可复制演示链接 https://github.com/davidrhoderick/grapesjs-检验 描述一下那个虫子 如何复现这个漏洞?跟随入门(你可以用Typescript和SCSS看到我用一个基础的Parcel项目来理解的结构)当你进入“主题”步骤时,尝试导入 Grapes SCSS时会报错。 预期的行为是什么? 只要我按照“入门教程”操作,一切都能正常工作。 目前的行为是什么? 当我进入应该允许我用SCSS自定义应用外观的步骤时,出现了以下错误: 如果需要执行某些代码以重现该漏洞,请将其粘贴到下...

davidrhoderick

有趣的是,基于CSS的样式确实有效。

artf

看起来 Parcel 变换器试图导入的是 'codemirror/lib/codemirror.js',而不是 'codemirror/lib/codemirror.css': “''CSS @import“codemirror/lib/codemirror”; ``` 所以我建议你在相关包裹上开启问题

GJS Helper

你遇到的问题,@parcel/transformer-sass: expected "{"导入GrapesJSSCSS时,是模块捆绑器如Parcel解析和流程样式表导入时常见的问题,尤其是在处理既有JavaScript又包含CSS组件的第三方库时。 根本原因 GrapesJS 利用 CodeMirror 实现其富文本编辑器和代码编辑器功能。虽然 GrapesJS的核心 SCSS(grapesjs/src/styles/scss/main.scss)对自身组件进行了样式化,但...

浏览所有主题