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

GrapesJS 问题

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

找到 743 个问题

🔍 bug
#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 样式值,这些值以画布像素为单位。 问...

#52362023年7月11日作者 joukhar2 个回答
0 个反应

内容为“null”的TextNode被渲染为“null”,而不是空白

GrapesJS版本[X] 我确认使用最新版本GrapesJS你用的是什么浏览器? Chrome 版本 114.0.5735.199(官方构建)(64位)可复制演示链接 无描述一下那个虫子 抱歉又提起这个问题了,但你的提交功能不起作用 我用npm install GrapesJS/grapesjs#dev安装了开发版 问题依然存在。 请您检查以下内容: /grapesjs/src/domcomponents/view/ComponentTextNodeView.ts grapesjs/src/domcomponents/view/ComponentCommentView.ts 在你修好之前,我会用editor.getHtml()来...

artf

@joukhar“npm install GrapesJS/grapesjs#dev”是不够的,我还没在开发分支里创建构建,所以如果你想本地解决这个问题,必须先自己构建。 无论如何,即使相关问题关闭了,也没必要新建,你仍然可以在那里添加更新,问题没有被锁定。

GJS Helper

感谢您报告此问题并详细说明相关代码部分。您已正确识别问题根源。 根本原因分析: 问题源于JavaScript的textContent属性和document.createComment方法如何处理null或undefined值。当执行el.textContent = null;或document.createComment(null);时,JavaScript隐式地将null转换为字符串的字面值"null"。这是标准的DOM行为,但当 model.content 表示空或不存...

#52322023年7月11日作者 bgrand-ch4 个回答
5 个反应

工作者 - 无头“文档未定义”

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 114.0.5735.133 可复制演示链接 不可能添加工蚁来繁殖。 描述一下那个虫子 如何复现这个漏洞?添加一名网页工作人员。在工作者内部设置“无头”选项初始化 GrapesJS 。添加一个带有“editor.DomComponents.addType” + “styles”的插件。给员工发消息。参考文献错误:文档未定义。 预期的行为是什么? 在工作者中使用 GrapesJS ,避免出现“ReferenceError: document is not fined”错误。 目前的行为是什么? 参考错误:文档未定义。 如果需要执行某些代码以重...

artf

你好,@bgrand-ch,不幸的是,所有涉及解析器(HTML/CSS)的内容都需要使用与DOM相关的API。对于CSS,也许你可以试试用[parser-postcss插件](https://github.com/GrapesJS/parser-postcss),我预计它能在工作环境下工作

bgrand-ch

你好,@artf,非常感谢你的快速回复😄,我这周会试试看。

bgrand-ch

@artf Post CSS 解析器插件在 Web Worker 中运行得非常完美!谢谢你的帮助。

#52292023年7月10日作者 joukhar4 个回答
1 个反应

内容为“null”的TextNode被渲染为“null”,而不是空白

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome 版本 114.0.5735.199(官方构建)(64位)可复制演示链接 无描述一下那个虫子 如何复现这个漏洞?丢弃该组件 <div class=\"flex items-center rounded shadow-md overflow-hidden max-w-xl relative dark:bg-gray-900 dark:text-gray-100\"> <div class=\"self-stretch flex items-center px-3 flex-shrink-0 dark:bg-gray-700 dark:...

artf

大概是在八月的第一周

artf

你好@joukhar最新版本是不是也这样? 如果我用你的 JSON 示例,我能在导出代码中看到“null”(这应该可以修复),但我无法用你的 HTML 示例生成带有 “null” 的 “textnode”,你能为这个用例创建一个可复现的演示吗? 不确定在哪种情况下textnode可能是“null”,但我们可以肯定能防止这种情况......

joukhar

谢谢你的重玩,如果你需要试玩版,请给我点时间,等我做完会再评论 问题只在存储和加载时出现,但第一次丢弃组件时却没有反应

#52212023年7月7日作者 Staubgeborener2 个回答
0 个反应

移动设备上的桌面版本

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Safari 16.5可复制演示链接 https://grapesjs.com/demo.html https://staubgeborener.de/描述一下那个虫子 我试用了官方的[演示](https://grapesjs.com/demo.html)。我什么都没改,只是点击 view code 按钮,下载html和css文件作为压缩压缩包。这些文件已经上传到我的网页服务器上,桌面设备运行得很正常。但当我用移动设备访问这个网页服务器(比如iOS-Safari浏览器)时,网站仍然是桌面版,而不是移动端版本。演示本身已经实现了移动版。 如何复现...

artf

这与核心无关,只是导出 HTML 中缺少一个元标签demo.html '''html <meta name=“viewport” 内容=“width=device-width,initial-scale=1”> ``` 如果你想提交永久居民申请,我很乐意帮你合并

GJS Helper

你遇到的问题不是GrapesJS本身的bug,而是部署响应式网页时常见的疏忽。根本原因是导出的HTML文件<head>部分缺少viewport meta标签。 根本原因解释 现代移动浏览器依赖viewport元标签来正确响应式地渲染网页。没有该标签,许多移动浏览器(尤其是iOS上的Safari)默认将页面渲染为类似桌面的宽度(例如980px),然后缩放以适应设备屏幕。这导致移动设备上会出现“桌面版本”,即使你的CSS包含针对较小屏幕的媒体查询。 GrapesJS演示页面(h...

浏览所有主题