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

GrapesJS 问题

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

找到 545 个问题

🔍 typescript
#56832024年2月15日作者 JonathanRiche2 个回答
0 个反应

Commands.runCommand 在内置命令中无法使用

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 克罗姆V121 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?进入 graepesjs.com/demo 页面,打开控制台,使用全局编辑器对象 运行editor.runCommand('sw-visibility')方法——内置网格线 而且即使面板上设置了命令,命令也运行不了,我在项目里设置过这个,最近从0.20.3升级到最新的v0.21.8,发现editor.runCommand('sw-visibility',{force:true})也无法使用,但还是没用 预期的行为...

JonathanRiche

首先需要运行visualEditor.stopCommand('sw-visibility'),不确定这是不是新用来切换的runCommand,之前需要运行停止

GJS Helper

感谢你报告这个问题。我调查了最新GrapesJS演示页面(https://grapesjs.com/demo.html)上的editor.runCommand('sw-visibility')行为,发现该命令确实按预期工作。在浏览器控制台执行时,它成功切换了画布上的网格线。 GrapesJS演示页面(Chrome v121)上的验证: 前往https://grapesjs.com/demo.html。 打开浏览器的开发者控制台(F12)。 输入editor.runComma...

#56772024年2月12日作者 soundharya23252 个回答
0 个反应

[X] 我确认使用最新版本 GrapesJS

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://jsfiddle.net/szLp8h4n 描述一下那个虫子 如何复现这个漏洞?插入带有链接的<a>标签。将浮点数向桌面单元格(td)赋予左或右。 预期的行为是什么? 在表格单元格中添加浮点右/左后,对齐应该只会改变 目前的行为是什么? 表格单元格被改成了表格行/表格正体 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: ![表格行](https://github.com/GrapesJS/grapesjs/assets/159787750/8f713b75-b3d8-4f40-a9f8-be9784...

artf

提供有效且可复现的演示

GJS Helper

你遇到的问题是,当应用float: right或float: left时,<td>元素的显示行为(表现为table-row或table-body)并不是GrapesJS特有的bug。相反,这是CSS float与HTML表元素内在显示模型交互的基本行为。 根本原因解释 HTML 表格元素(<table>, <tbody>, <tr>, <td>)具有独特且严格的显示模型(display: table, display: table-row-group, display: t...

#56742024年2月9日作者 mauriciolcs22 个回答
0 个反应

当一个元素最小高度为100vh时,无限画布的高度会无限增加

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Arc 版本 1.29.0 (46113)可复制演示链接 https://grapesjs-react-custom-ui-vrkhwc.stackblitz.io描述一下那个虫子 如何复现这个漏洞?启用无限画布至少在画布上添加两个组成部分为其中一个设置最小高度为100vh。 预期的行为是什么? 画布的高度不应无限增加。 目前的行为是什么? 画布高度在无限增加。 在本演示中设置最小高度最直接的方法就是使用检查器。通过 GrapesJS配置时也会出现同样的错误。行为准则[X] 我同意遵守本项目的行为准则

artf

避免使用无限画布,因为它从未被记录,甚至没有作为长片完成。

GJS Helper

你遇到的 Capital 无限画布在元素为 min-height: 100vh 时无限增加高度的 GrapesJS 问题,是 CSS 视口单元(vh)与GrapesJS画布动态缩放机制之间的已知交互问题,尤其是在画布渲染为 iframe 时。 根本原因分析 min-height: 100vh:该 CSS 属性指示元素至少达到视口高度的100%。在GrapesJS语境中,内容渲染在一个<iframe>中。因此,画布内元素的“视口”即是 iframe。 无限画布功能:当Grap...

#56682024年2月6日作者 addlistener2 个回答
1 个反应

CompoentTextView 的源码图无法加载

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 版本 121.0.6167.139(官方构建)(x86_64) 可复制演示链接 没有。 描述一下那个虫子 如何复现这个漏洞?添加自定义断点并设置断点点击步出直到进入组件文本视图的逻辑 预期的行为是什么? 源图加载 目前的行为是什么? ComponentTextView 的 sourcemap 未加载,但已加载于 RichTextEditorModule <img width=“557” alt=“image” src=“https://github.com/GrapesJS/grapesjs/assets/4531670/7b110b3d-...

artf

我只能建议你仔细检查源地图路径 <img width=“346” alt=“截图 2024-02-12 08 45 32” src=“https://github.com/GrapesJS/grapesjs/assets/11614725/ee135460-a758-4aef-96fa-1d1b463c934d”> 例如,如果你尝试通过 CDN 加载 Grapesjs,比如像 'https://unpkg.com/grapesjs'(这里发生重定向),因为这种情况下 URL...

GJS Helper

看起来你遇到的问题是浏览器的开发者工具中ComponentTextView的源阵图无法加载,尽管RichTextEditorModule的源阵图似乎正常工作。这是调试捆绑JavaScript库时常见的困惑点,比如GrapesJS。 理解GrapesJS源地图 GrapesJS,当为分发而构建(如 grapes.min.js),会将其所有模块打包到一个 JavaScript 文件中。对应的 grapes.min.js.map 文件是一个单一的源码映射,包含所有原始源文件(包括...

#56332024年1月20日作者 kla-ko3 个回答
0 个反应

无法在“component:remove”处理程序中选择组件

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome 版本 120.0.6099.225 可复制演示链接 https://jsfiddle.net/wattnu/opmwfvjn/ 描述一下那个虫子 如何复现这个漏洞?打开并拉动小提琴画布上有两个组件。“hello world” div 和一个蓝色背景 div。“hello world” div 是根据命令 'editor.select(editor.getComponents().models[0]); ' 选择的在选择蓝色框并在画布位置选择删除时,调用“component:remove”处理程序。然而,“hello world...

artf

谢谢@kla-ko,实际上有一个逻辑会阻止在“组件:移除”事件中选择其他组件,我会在下一个版本修正,但我建议你切换到另一个事件。 “component:remove”事件会针对每个被移除的组件触发,这意味着它会针对你决定移除的组件内嵌套的组件触发。你可以使用“run:core:component-delete”事件,该事件在删除命令完成后只触发一次,目前应该能正常工作,无需修复。

kla-ko

谢谢@artf。这招管用得非常顺利! /

GJS Helper

你遇到的 editor.select() 在 component:remove 处理程序中无法正常工作的问题,是由于事件的时间点和 GrapesJS的内部组件生命周期有关。component:remove事件在组件完全脱离 DOM 并从编辑器内部组件树中移除之前就触发了。在此阶段,编辑器可能处于选择的中间状态,任何同步尝试更改选择的尝试都可能被后续的内部逻辑覆盖或忽略,从而完成组件移除过程。 根本原因 当component:remove被触发时,GrapesJS正在主动处理...

#56322024年1月20日作者 Harshsne262 个回答
0 个反应

在撤销管理器中添加更改

GrapesJS版本 [X] 我确认使用最新版本GrapesJS 你用的是什么浏览器? Chrome v91 可复制演示链接 https://codepen.io/dhanadsp1120/pen/ExrRvOB 描述一下那个虫子 如何重现这个bug?通过调用 um.stop() 禁用撤销管理器。对内容进行修改。使用 um.start() 重新启用撤销管理器。 预期的行为是什么? 当撤销管理器恢复时,暂停后所做的任何修改应被视为一次更改。这确保点击“撤销”会将所有修改恢复到撤销管理器中断前的状态。 目前的行为是什么? 撤销管理器停止后所做的更改在恢复后不会被包含在内。选择撤销选项后,这些更改会持续存在,不会如预期回滚。 另外我也尝...

artf

当撤销管理器恢复时,暂停后所做的任何修改应视为一次更改。这确保点击“撤销”会将所有更改恢复到撤销管理器中断前的状态。 抱歉,这不是UndoManager的启动/停止方式。禁用后,所有更改都会直接跳过UndoStack。 你说的是一个程序化的变更组合,确实很有趣,但目前还不支持,所以我不认为这是个bug。 我建议在[路线图](https://github.com/GrapesJS/grapesjs/discussions/5291)中提出这个建议,如果更多人需要,我们可以考虑...

GJS Helper

你遇到的问题是 GrapesJS UndoManager的预期行为。当调用 um.stop() 时,UndoManager会停止监听编辑者的更改。因此,在此期间所做的任何修改都不会被记录在历史中。当 um.start() 被调用时,它会从那点开始继续追踪,完全忽略暂停期间发生的更改。你的目标是将 um.stop() 到 um.start() 之间所有的更改都当作一个原子级的不可执行操作来实现。这可以通过手动在UndoManager的历史中添加自定义撤销步骤来实现,该步骤捕捉...

#56312024年1月19日作者 Harshsne262 个回答
0 个反应

撤销管理器 add () 无法如预期工作

GrapesJS版本 [X] 我确认使用最新版本GrapesJS 你用的是什么浏览器? Chrome v91 可复制演示链接 -- 描述一下那个虫子 如何复现这个漏洞? 我想在undomanager堆栈中添加一个更改。 var components = editor.Components;editor.UndoManager.add(components.getComponents().models); 预期的行为是什么? 用um.add()添加的更改应该被添加......当我点击撤销和重做时,这个更改也应该显示出来。 目前的行为是什么? 该变更不会被添加。 行为准则 [X] 我同意遵守本项目的行为准则

artf

@Harshsne26你需要提供一个可复现的漏洞演示

GJS Helper

你遇到的 editor.UndoManager.add() 不按预期工作的问题,源于对方法预期用途及其预期参数类型的误解。GrapesJS UndoManager 旨在跟踪编辑器整体状态的变化,而非直接跟踪单个模型集合。 根本原因 参数类型错误:editor.UndoManager.add()方法期望以State对象作为其参数。State对象是编辑器内容的全面快照,通常包含诸如html、css、components(序列化的JSON字符串或对象)、styles、pages和...

#56302024年1月18日作者 kla-ko2 个回答
0 个反应

配置 onStart() resize 回调可以防止调整大小

GrapesJS 版本 [x] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome 版本 120.0.6099.225 可复制演示链接 https://jsfiddle.net/wattnu/y8L6whun/ 描述一下那个虫子 如何复现这个漏洞?Goto jsfiddle运行代码在画布上,选择蓝色的div组件尝试拖动位于底部中央的调节把手调整大小手柄不会随着鼠标移动在 js 代码中,查看顶部的插件实现。在那里,考虑以下部分:注释 onStart 配置 --> '// onStart: (event, opt) => { console.log('resize started') } ,'重新运行小提琴。现在...

artf

说得好,我会修正的

GJS Helper

你遇到的问题是,配置onStart回调以resizable属性,导致组件无法调整大小,是因为GrapesJS(以及通常底层的拖拽/缩放库)处理自定义事件回调的方式。当定义了onStart回调时,如果你想继续默认的调整大小操作,通常会显式返回true。如果回调返回undefined(这是没有 return 语句时的隐式返回值)或 false,则调整大小操作实际上被取消或阻止启动。 根本原因 GrapesJS 中的resizable功能依赖于一个内部机制,检查onStart回调...

#56212024年1月15日作者 ronaldohoch2 个回答
0 个反应

在空元素上显示占位符时,边界不被考虑

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Edge 最后版本可复制演示链接 https://grapesjs.com/演示描述一下那个虫子 如何复现这个漏洞?得到一个空元素加高值双边框。(20..30px...)将任意方块移动到其中。![图片](https://github.com/GrapesJS/grapesjs/assets/2287371/5894b9b2-08c1-46f9-a62f-536e221839d1) 预期的行为是什么? 占位符应放在元素中心。 目前的行为是什么? 占位符显示在元素顶部,木板内侧行为准则[X] 我同意遵守本项目的行为准则

ronaldohoch

https://github.com/GrapesJS/grapesjs/pull/5622

GJS Helper

你准确地识别出GrapesJS中一个视觉漏洞,涉及当元素有显著边界时,空元素占位符的位置。这种行为在GrapesJS演示中是可复现的,并影响拖拽操作中的用户体验。 根本原因 根本原因在于默认的 CSS 样式应用到GrapesJS占位符元素上,通常由类 .gjs-placeholder标识。默认情况下,GrapesJS 使用position: absolute; top: 0; left: 0; right: 0; bottom: 0;来定位占位符。这组属性使占位符填充其父元...

#56132024年1月12日作者 SachinPuthiyoth1 个回答
0 个反应

StyleManagerConfig.sectors.properties 的类型定义错误

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 没有 描述一下那个虫子 如何复现这个漏洞?根据 https://github.com/GrapesJS/grapesjs/blob/5c890449a52f526bc480d6dc649ff5e01ec59140/src/stylemanager/index.ts#L310 属性的类型 属性类型https://github.com/GrapesJS/grapesjs/blob/5c890449a52f526bc480d6dc649ff5e01ec59140/src/stylemanager/config/config.t...

GJS Helper

你准确指出了GrapesJS中的类型定义不一致。问题源于src/stylemanager/config/config.ts中StyleManagerConfig.sectors.properties声明的类型与其实际用法及预期类型不匹配,意图类型是PropertyTypes(Property对象数组),如 src/stylemanager/index.ts所示。 根本原因 StyleManagerConfig接口,特别是sectors性质,定义为SectorProps[]。...

浏览所有主题