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

GrapesJS 问题

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

找到 743 个问题

🔍 bug
#60482024年8月7日作者 danstarns1 个回答
0 个反应

打字稿

代码库目前使用过时版本的 TypeScript。该票旨在: 升级到最新版本的TypeScript。 确保所有项目中的TypeScript配置一致。 将TypeScript集成到开发和CI流程中,实现自动类型检查。 更新和标准化 TypeScript 将提升类型安全性,减少错误,并提升整体代码质量。

GJS Helper

在GrapesJS代码库中升级和标准化TypeScript,是提升可维护性、早期发现错误和提升开发者体验的关键一步。本解决方案概述了实现这一目标的步骤,重点关注依赖升级、一致配置以及CI/CD集成。 1.升级到最新版本的TypeScript 首先,将typescript包和相关@types/定义更新到最新的稳定版本。建议使用像npm-check-updates(或yarn upgrade-interactive)这样的工具,方便识别过时的依赖。 安装typescript:...

#60452024年8月7日作者 danstarns1 个回答
0 个反应

线条处理,格式化

代码库目前使用过时的线条工具和格式化库。该票旨在: 升级到最新版本的线条处理工具和格式化库。 确保所有项目的线条和格式规则保持一致。 将这些工具集成到开发和CI流程中,实现自动化执法。 标准化这些工具将提升代码质量,减少错误,并创造更为统一的开发环境。

GJS Helper

标准化linting和格式化对于维护代码质量和GrapesJS代码库内的连贯开发环境至关重要。这一举措将显著提升开发者体验并减少潜在错误。以下是实现这一目标的全面方法: 1.升级到最新的打印和格式化工具 推荐工具: ESLint: 用于 linting JavaScript/TypeScript 代码。 更漂亮: 为了保持一致的代码格式。 安装/升级步骤: 首先,确保你安装了Node.js和npm/yarn。然后,更新你的 package.json 依赖。 2.确保模板和格...

#60402024年8月6日作者 Vampire-V4 个回答
0 个反应

无法读取未定义的属性(读取“lastComponent”)

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 版本 127.0.6533.89(官方构建)(64 位) 可复制演示链接 描述一下那个虫子 请检查一下。select的值未定义。我在React里用过,遇到了错误异常。 /*返回所选组件的模型@return {Component|null}@public / EditorModel.prototype.getSelected = function () { return this.selected.lastComponent(); }; ![图片](https://github.com/user-attachments/assets/2eaf...

artf

@Vampire-V,请正确遵循bug问题模板。没有可复现的演示,我们无法帮你。

Aravinth-2020

### GrapesJS 版本[x] 我确认使用最新版本 GrapesJS### 你用的是什么浏览器?版本 127.0.6533.89(官方构建)(64位)### 可复制演示链接### 描述一下那个虫子请检查一下。已选值为未定义。我在React里用过,结果遇到了错误异常。/* 返回所选组件的模型 @return {组件|null} @public */ EditorModel.prototype.getSelected = 函数 () { return this.selec...

Aravinth-2020

嘿,@Vampire-V,请正确遵循漏洞问题模板。没有可复现的演示,我们无法帮你。 你能分享一下解决办法吗? 我选择开放图层管理器时也遇到同样的问题,这个问题是在我自定义左边栏面板中选择另一个页面后出现的。

#60392024年8月6日作者 Gryphonn4 个回答
3 个反应

无法设置块显示值

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬126 可复制演示链接 https://jsfiddle.net/Gryphonn/ob1pznh6/ 描述一下那个虫子 如何复现这个漏洞?选择任意单词。包装得有型。保持该词被选中。进入通用->显示我想要屏蔽。我点击屏蔽,但没有任何反应。 预期的行为是什么? 显示值必须是空的,这样我才能立即选择所需的内容。 或者它必须显示所选文本当前的实际显示值。这里是内联显示,而不是块。 目前的行为是什么? 目前我需要点击两次。 首先,点击除“屏蔽”以外的任何内容。显示字段已激活。 那我应该点击屏蔽。 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面...

artf

是的,问题就在这里: https://github.com/GrapesJS/grapesjs/blob/1e3766f0060e6da502fccf9ba9eb938d5ac860bb/src/style_manager/model/PropertyFactory.ts#L267 添加一个新选项,比如“初始”,并设为默认选项,这样做合理吗?

danstarns

> 你好@Gryphonn,>我试图复现你的问题,但步骤不太清楚,请重新表述。bandicam.2024-08-08.21-07-14-667.mp4 感谢您的详细报告 🙏 看起来我们应该更好地处理默认显示,这样你就不用先切换到另一个显示器再切换回来。

danstarns

你好,@Gryphonn, 我试着重现你的问题,但步骤不太清楚,请重新表述。

#60382024年8月6日作者 dharma-glui2 个回答
0 个反应

像按钮上的Onclick事件这样的内联事件声明正在被移除

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? 铬可复制演示链接 https://jsfiddle.net/6bn43a05/描述一下那个虫子 如何复现这个漏洞?为HTML标签添加点击事件 预期的行为是什么? 加载到编辑器后不应该删除该事件 目前的行为是什么? 它会从 HTML 中移除点击事件 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: 同样的问题在这里报告: https://stackoverflow.com/questions/78496572/grapesjs-移除点击属性如何防止-做-做 ![截图(37)](https://github.com/user-attachmen...

artf

这是出于安全考虑,但你可以用“config.parser.optionsHtml.allowUnsafeAttr”选项禁用它(风险自负):https://github.com/GrapesJS/grapesjs/blob/819bfcf44bb23d51990eba3b4330e9932df59cde/src/parser/config/config.ts#L116

GJS Helper

你遇到的问题是, onclick 属性在加载到 GrapesJS时从 HTML 元素中被移除,这是 GrapesJSHTML净化流程中的一个有意设计的安全功能。 GrapesJS,像许多现代HTML编辑器一样,会去除潜在不安全的属性和标签,以防止跨站脚本(XSS)漏洞,并维护其组件模型的干净、可预测的DOM结构。 像 onclick、 onload、 onerror等内联事件处理程序,通常被认为是现代网页开发中的不良做法,原因在于安全性问题和关注点分离(结构用 HTML,风...

#60322024年8月3日作者 aswinkumar8632 个回答
0 个反应

图像分量支持通过拖放上传和选择视频文件

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v126 可复制演示链接 https://grapesjs.com/演示 描述一下那个虫子 如何复现这个漏洞?打开 [demo](https://grapesjs.com/demo)双击任意现有的图像组件以打开资产管理器。将视频文件拖拽到图片上传区。等待视频文件上传。点击上传的视频资源选择它。 注意: 这个问题只在拖拽时出现。视频组件也受此影响。 预期的行为是什么? 图片组件应当防止错误的文件类型选择。如果资产管理器第一步阻止上传错误文件类型,会更好。 行为准则 [X] 我同意遵守本项目的行为准则

artf

感谢@aswinkumar863报告。我很乐意合并修复的PR。

GJS Helper

你提到的问题,GrapesJS Image组件允许通过拖放上传和选择视频文件,这是默认资产管理器拖放处理程序未明确强制文件类型限制时常见的情况。虽然原生的 HTML input type="file" 元素使用 accept 属性过滤文件选择对话框,拖放操作则需要自定义验证逻辑以防止处理不需要的文件类型。 根本原因 演示中所见的默认GrapesJS资产管理器提供了基本的上传机制。当文件被拖放时,浏览器会提供对这些文件的访问。如果拖拽事件处理程序或后续上传函数没有明确的客户端...

#60242024年7月30日作者 yashvi20262 个回答
0 个反应

无法隐藏某些特定组件类型的RTE功能

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://codepen.io/Harshsne/pen/xxoOyXO 描述一下那个虫子 https://github.com/GrapesJS/grapesjs/issues/6019 关于此点, 我想只为某一特定类型隐藏。 示例:当组件属于链接类型时隐藏 rte行为准则 [X] 我同意遵守本项目的行为准则

artf

https://github.com/GrapesJS/grapesjs/issues/6019#issuecomment-2267466020 请避免制造重复问题。

GJS Helper

问题描述了一种常见需求,即在GrapesJS中条件控制富文本编辑器(RTE),特别是防止其在某些组件类型(如“链接”组件)上激活。虽然GrapesJS会自动为标记为editable的选定组件启用RTE,但开箱即用的配置选项并不支持基于组件类型来禁用该编辑器。 根本原因 GrapesJS的内部逻辑在选中组件并被视为可编辑时,调用editor.RichTextEditor.enable()方法激活RTE。这种行为是通用的,并不固有区分RTE激活的不同组件类型。为了实现条件禁用,...

#60192024年7月26日作者 yashvi20264 个回答
0 个反应

在最新版本中无法隐藏RTE功能

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://codepen.io/Harshsne/pen/xxoOyXO 描述一下那个虫子 如何复现这个漏洞?删除文本组件编辑文本组件 预期的行为是什么? RTE不应该被展示 目前的行为是什么? RTE被展示 当我把 grapesjs 版本改成0.20.4时,这个代码还能用,只有最新版本里不行行为准则 [X] 我同意遵守本项目的行为准则

artf

是的,'onActive'现在是异步方法,所以用'extendFnView'扩展它不够,你的代码会先于原始代码执行。 无论如何,你用一行简单的CSS也能达到同样的结果 “''CSS .gjs-rte-toolbar { 显示:无; } ```

yashvi2026

但我只想隐藏某些特定类型,比如:文本@artf

artf

你仍然可以不使用“extendFnView”来扩展视图。如[这里](https://grapesjs.com/docs/modules/Components.html#extend-parent-functions)所示,通过原型重用原始组件类型。

#60122024年7月21日作者 aswinkumar8631 个回答
0 个反应

使用上下箭头时,输入数字值不会保持

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v126 可复制演示链接 https://codepen.io/aswinkumar863/pen/VwJaVYG 描述一下那个虫子 如何复现这个漏洞?打开[演示](https://codepen.io/aswinkumar863/pen/VwJaVYG)。点击编辑正文中的“点击我”部分。导航到Style Manager并选择General > Top。在输入框中输入任意数字,但不点击外部。点击上或下箭头。 注意: 此行为仅在输入字段未被点击时观察到。数字特征也受此问题影响。 预期的行为是什么? 输入数字应与当前输入的值递增或...

GJS Helper

你准确指出了GrapesJS中的一个bug,就是风格管理器和特性管理器中的input type="number"字段在使用上下箭头时,无法正确保留手动输入的数值,除非先模糊输入。这导致箭头是从模型最后保存的值开始增减,而不是输入字段当前显示的值。 根本原因 根本原因在于GrapesJS的事件处理机制,PropertyNumberView(样式管理器属性)和TraitNumberView(组件特征)。这些视图通常监听输入字段上的change事件以更新底层GrapesJS模型。...

#60012024年7月13日作者 thigh1 个回答
0 个反应

图层管理器在页面间交替切换时会断裂

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? MS Edge 126.0.2592.87(官方版本)(arm64) 可复制演示链接 无 描述一下那个虫子 如何复现这个漏洞?...使用 grapesjs的0.21.11或0.21.12版本,创建一个多页项目。在页面A时,图层管理器正常工作。切换到页面B同样正常。 ...切回页面A会导致图层管理器停止响应,使其无用。实际上,切换到之前加载的任意页面会导致这个问题,但首次切换到任意页面则正常。 切回v0.21.10问题解决 预期的行为是什么? ...图层panager应反映当前加载页面的组件并允许交互。 目前的行为是什么? ...图层管理器停...

GJS Helper

看起来你在0.21.11和0.21.12版本中遇到了已知的回归GrapesJS与多页面项目中层管理器行为相关的现象。问题出现在切回之前加载过的页面时,导致层管理器失去响应。 根本原因解释 GrapesJS层管理器由一个负责渲染组件树的 LayerManagerView 驱动。该视图维护对应显示组件的collection的参考,通常是 editor.DomComponents.getWrapper().get('components')(当前页面根组件的子节点)。 当你在Gr...

浏览所有主题