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

GrapesJS 问题

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

找到 3,464 个问题

#52882023年8月9日作者 pittleCheung2 个回答
0 个反应

Use tsup-node build grapesjs 出现 未捕获错误:不支持“codemirror/lib/codemirror”的动态要求

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 最新版本的Chrome浏览器 可复制演示链接 无效 描述一下那个虫子 如何复现这个漏洞?Tup-Node SRC/index.ts --format esm,cjs --legacy-output --watch 预期的行为是什么? 我用Vite来建造 grapesjs 目前的行为是什么?<img width=“1126” alt=“image” src=“https://github.com/GrapesJS/grapesjs/assets/114127651/26e08b79-17e9-42ca-9133-dae9a32313d4”><...

artf

我觉得你得向 Vite 社区反映这个问题,核心现在用的是 webpack,运行正常

GJS Helper

谢谢你举报,@pittleCheung。 关于use tsup-node build grapesjs appear Uncaught Error:不支持“codemirror/lib/codemirror”的动态要求,非常好的问题。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现...

#52862023年8月8日作者 saharhagekr2 个回答
0 个反应

图像边界和部分元素位置错误

在较小的笔记本屏幕(比如MacBook)上,图片的边框和某些元素的位置不对(当我点击移动或调整图片大小时) 当编辑器在大屏幕上渲染时,我就没有这个问题了。 我不确定是不是我漏掉了什么配置步骤。 有人能帮帮忙吗?这是常见问题吗? 例如: <img width=“217” alt=“截图 2023-08-08 下午3点20分19分” src=“https://github.com/GrapesJS/grapesjs/assets/121887023/9b83c4a2-c944-4faf-94e0-3d6bca9c80d1”> <img width=“245” alt=“截图 2023-08-08 下午3:20 25” src=“htt...

artf

@saharelhage请避免将讨论转化为议题。GitHub 问题应仅通过正确遵循模板从[这里](https://github.com/GrapesJS/grapesjs/issues/new/choose)创建。

GJS Helper

你遇到的选择和调整边框在较小屏幕上出现错误位置的问题,尤其是MacBook,是一个常见问题,通常与浏览器在不同缩放条件(浏览器缩放、操作系统显示比例)下渲染内容的方式或CSS冲突有关。GrapesJS依赖JavaScript通过选中组件的 getBoundingClientRect() 等方法计算选中和调整大小的handle位置和尺寸。如果浏览器的渲染上下文被缩放或变换,这些计算值可能无法准确反映屏幕上的视觉位置,导致对齐不一致。这种差异在较小的视口中更为明显,哪怕是轻微的...

#52802023年8月7日作者 fluke7772 个回答
0 个反应

视图中的事件处理程序未绑定到组件

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome 版本 115.0.5790.114 可复制演示链接 https://jsfiddle.net/mcraf3se/5/ 描述一下那个虫子 你好,我刚从 GrapesJS 开始,所以很可能我误解了某些根本性的问题。 我在为自定义组件视图设置事件处理程序时遇到了困难。 如何复现这个漏洞? 在链接的JS小提琴中。将我的分区拖拽到画布上点击其中(应该有带有“stuff”的div)。 预期的行为是什么? 根据文档[这里](https://grapesjs.com/docs/modules/Components.html#define-cu...

artf

这里的错误是用了箭头函数,只需用 'clickOnElement() {' 来替代它

GJS Helper

你遇到的问题是,this在自定义组件的视图事件处理程序中window或undefined,是常见的JavaScriptthis绑定问题,尤其是在使用箭头函数时。这不是GrapesJS的bug,而是对对象方法中箭头函数this工作的误解。 根本原因 在JavaScript中,箭头函数(() => { ... })词法绑定this。这意味着它们没有自己的this上下文;相反,它们继承了定义时的包围作用域的this。在像你view定义这样的对象文字上下文中,词汇this通常是全局...

#52742023年8月3日作者 wunksert4 个回答
1 个反应

Parser bug inside Remix

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v114 可复制演示链接 https://github.com/wunksert/remix-grapes-error/tree/main 描述一下那个虫子 如何复现这个漏洞?上文的克隆仓库NPM INPM 运行开发 你会看到 grapes iframe和样板都被渲染到了画布里。尝试导出,你会发现所有 grapes 样板也都渲染到画布里打开开发工具,你会看到错误: 补充背景 预期的行为是什么? 编辑器应该正确地渲染它的样板,和它一样 目前的行为是什么? 解析器似乎不起作用。编辑器渲染的是用于封装编辑器DOM的iframe。它还...

artf

@wunksert看起来编辑器会多次初始化自己,你是否正确地用 destroy 清除编辑器实例(例如在 useEffect 中)?

wunksert

也许我编辑项目中的结构或命名规范,解决这个问题会更简单。如果比在 GrapesJS Core 里改动更快,我很乐意这么做。

artf

是的,绝对和核心无关

#52692023年8月2日作者 sannila1 个回答
0 个反应

对象字面量只能指定已知属性,且“el”不存在于类型“PanelProps”中。

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome 115.0可复制演示链接 https://jsfiddle.net/varyqjo7/描述一下那个虫子 如何复现这个漏洞?创建一个新的 Angular 项目(版本 16.1.3)安装 grapesjs 最新版本(npm i grapesjs)在angular.json(脚本和样式)中添加css和js添加面板 预期的行为是什么? el 应该接受面板中的对象。 目前的行为是什么? el 不接受面板的对象 请见下方附件: ![图片](https://github.com/GrapesJS/grapesjs/assets/41979819...

GJS Helper

你遇到的问题是,“对象字面可能只指定已知属性,'el' 不存在于类型 'PanelProps'”,是 TypeScript 编译错误。它表明 el 属性在 PanelProps 接口中不是有效或识别的属性GrapesJS。 根本原因 el属性不包含在GrapesJS的PanelProps界面中。GrapesJS中的面板设计为由编辑器的UI系统内部管理和渲染。PanelProps界面定义了诸如id、content、buttons、visible、className和attri...

#52682023年8月2日作者 SLain1233 个回答
0 个反应

YouTube或Vimeo的自动播放不行

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v115 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?将视频组件拖放到画布上。选择YouTube或Vimeo并添加视频ID。激活自动播放复选框。发布或预览页面。 预期的行为是什么? 视频必须在用户打开页面后自动播放。 目前的行为是什么? 视频无法启动。行为准则 [X] 我同意遵守本项目的行为准则

SLain123

我自己能修复这个bug,但我无法用fix把分支推送到仓库。看起来我没有推送或创建新分支的权限。

artf

@SLain123你必须从分支 https://stackoverflow.com/questions/38918942/pull-request-from-a-different-repository 创建一个PR

GJS Helper

你遇到的YouTube和Vimeo自动播放无法GrapesJS正常工作的问题,并不是GrapesJS本身的bug,而是现代浏览器自动播放政策的结果。像Chrome、Firefox和Safari这样的浏览器已经实施了严格规则,以防止不想要的媒体播放,这会干扰用户并消耗数据。 根本原因:浏览器自动播放政策 大多数现代浏览器会阻止有声音的自动播放视频,除非满足特定条件。最常见的条件包括: 视频静音: 如果视频以静音状态开始播放,浏览器通常允许自动播放。 用户互动: 如果用户已与页...

#52632023年7月28日作者 pittleCheung4 个回答
3 个反应

如果删除组件但不删除其对应样式,之后添加新组件会导致样式冲突吗?

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 最新版本的Chrome浏览器 可复制演示链接 无效 描述一下那个虫子 如何复现这个漏洞? <img width=“1666” alt=“image” src=“https://github.com/GrapesJS/grapesjs/assets/114127651/c37e339a-e14f-486b-85fb-34c170b855dd”> 预期的行为是什么? 目前的行为是什么? 我用的是 rewrite ctrl + c 和 ctrl + v 的逻辑 <img width=“681” alt=“image” src=“https://g...

pittleCheung

是的,你说得对,我复制了所有匹配的样式,这样我可以粘贴到任何地方,甚至跨浏览器粘贴,我觉得这非常有用。当我删除组件时,对应的样式不会被移除。这是一个大问题,当我在同一个网站上多次复制粘贴时,会导致大量重复的样式,容易引发样式冲突。 所以我不能指望那些风格被简单删除。如果可能的话,我会很感激一些建议。 “如果你复制了所有匹配的样式,它还会包含其他元素使用的样式,所以你不能指望那些样式被简单删除。”

pittleCheung

这仍然是个问题

artf

我不明白这怎么会是核心漏洞。 你用的是自己的复制粘贴逻辑,感觉也不对,你应该注意每个组件/规则的唯一ID。删除这些子组件后,它们的样式依然保留。 如果你复制了所有匹配的样式,它还会包含其他元素使用的样式,所以不能指望那些样式被简单删除。 请,如果你提交了bug,务必提供可复现的演示。

#52492023年7月24日作者 pittleCheung3 个回答
0 个反应

编辑?Css.addRules(targetCss);

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 最新版本的Chrome浏览器 可复制演示链接 无效 描述一下那个虫子 如何复现这个漏洞? 编辑器?Css.addRules(targetCss); 预期的行为是什么? 编辑器?。Css.addRules(targetCss);它在结尾添加样式 <img width=“826” alt=“image” src=“https://github.com/GrapesJS/grapesjs/assets/114127651/28425b0a-b9f7-46a8-b8bc-736AA112cc3C”> 目前的行为是什么? 我帮忙编辑吗?Css.add...

artf

这不是个bug,'Css.addRules'没有任何选项参数。 你可以就这个话题展开讨论,我们可以看看是否有必要引入它

pittleCheung

好的,我明白了,我需要在数组前面添加样式,而不是在最后。比如 arr.unshift(css)。我该怎么做?我可能需要你帮帮我

GJS Helper

你观察到的 editor.Css.addRules() 行为实际上是 GrapesJS CSS API预期且预期的功能。默认情况下,当你使用 editor.Css.addRules(targetCss);时,新的CSS规则会附加在由 GrapesJS管理的样式表末尾。这是许多CSS管理系统中常见的模式,新规则是顺序添加的。 不过, GrapesJS 提供了一个灵活的选项来控制CSS规则的插入点。你正确识别并使用了 at 选项,它允许你指定新规则在样式表中插入的准确索引。当你...

#52452023年7月16日作者 riteshdalal4 个回答
0 个反应

带有 editable:false 的组件内容仍然是可编辑的

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome 114.0.5735.198 可复制演示链接 https://jsfiddle.net/riteshdalal/obnx7sg3/22/ 描述一下那个虫子 如何复现这个漏洞?在模型中创建一个带有 editable:false 的组件将组件放置在画布上 预期的行为是什么? 不可编辑组件的内容不应被GJS解析 目前的行为是什么? 不可编辑组件的内容会被解析并可编辑 请查看附带的演示链接行为准则 [X] 我同意遵守本项目的行为准则

artf

“可编辑”属性默认没有意义,只有其他扩展组件如“文本”或“图像”在内部使用。

riteshdalal

@artf我们如何创建一个组件,使 GJS 不解析这些子节点。

riteshdalal

“可编辑”属性默认没有含义,只被其他扩展组件如“文本”或“图像”内部使用。 这在旧版GJS上是有效的。0.21.3 版本就完全不工作了

#52412023年7月14日作者 hanzuken2 个回答
0 个反应

在缩放画布中移动时,元素的绝对位置与光标位置不同

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome 版本 114.0.5735.199(官方构建)(64 位) 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?启用绝对拖拽模式 editor.editor.set('dmode', 'absolute')将变焦调至50 editor.Canvas.setZoom(50)选择一个组件。按下工具栏上的移动按钮 预期的行为是什么? 光标与元素之间的距离与画布缩放为100时相同。 目前的行为是什么? 光标与元素之间的距离相对较远。 行为准则 [X] 我同意遵守本项目的行为...

artf

与绝对模式相关的问题在此 https://github.com/GrapesJS/grapesjs/issues/3770

GJS Helper

你准确指出了GrapesJS中与绝对位置和画布缩放相关的常见问题。这确实是一个bug,拖拽操作的差值计算没有考虑画布当前的缩放水平,导致光标位置和元素实际移动之间存在差异。 根本原因解释 当dmode设置为absolute时,GrapesJS 利用 top 和 left CSS 属性来定位组件。在拖动操作过程中,编辑器根据屏幕像素计算鼠标位置的变化(deltaX, deltaY)。然后尝试将这些差异直接应用于组件的 left 和 top 样式值,这些值以画布像素为单位。 问...

浏览所有主题