GrapesJS 问题

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

找到 877 个问题

🔍 question
#57952024年4月4日作者 gitpugal2 个回答
0 个反应

如何添加额外的自定义块管理器,比如块管理器和样式管理器这样的标签页或分区,并添加一些块?

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬V9 可复制演示链接 描述一下那个虫子 如何复现这个漏洞?...... 预期的行为是什么? ... 目前的行为是什么? ... 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: “''js 你的代码在这里 ```行为准则 [X] 我同意遵守本项目的行为准则

artf

@gitpugal如果有任何问题,请使用讨论区

ClaudeCode

谢谢你举报,@gitpugal。 关于如何添加额外的自定义块管理器,比如标签页或部分,比如块管理器和样式管理器,并添加一些块? 这个问题很棒。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', ()...

#57882024年4月2日作者 lexoyo3 个回答
0 个反应

CSS 属性的默认值

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 无可复制演示链接 https://grapesjs.com/demo.html描述一下那个虫子 大家好!!<3 如何复现这个漏洞?打开[Grapesjs官方网页演示](https://grapesjs.com/demo.html)点击容器,例如英雄区容器在容器上应用“font-weight: bold;”样式 => 所有文本变粗选择其中一个文本,勾选属性“font-weight”,设置为“normal” 预期的行为是什么? “font-weight”应放在“”'空字符串或“unset”中,这样我可以选择“normal”来取消“font-weight: b...

artf

我需要选择别的,而不是普通 是的,如果没有值,默认界面会预选“默认值”,但这很容易更新 “''js 编辑。StyleManager.getProperty('typography', 'font-weight').set({ 默认: ' ' }); ``` 所以我猜这不是核心漏洞,而是“意外预期”的行为 🥲

lexoyo

哦,明白了,我以为你会希望默认值是预期的行为 😃 谢谢你的回答

ClaudeCode

谢谢你举报,@lexoyo。 关于CSS属性默认值的好问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')...

#57852024年3月29日作者 bernesto3 个回答
1 个反应

大纲在预览模式下依然存在

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v122 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 这可能是刻意为之,但考虑到其意图,这似乎有些奇怪。 如何复现这个漏洞?点击预览(眼睛) 预期的行为是什么? 页面的浏览方式是终端用户看到的。所有管理标记都已从页面中移除。 目前的行为是什么? 除虚线外的所有管理标记都被移除。 在预览阶段,'.${ppfx}dashed '应从正文中移除,退出预览时启用后重新应用。行为准则 [X] 我同意遵守本项目的行为准则

bernesto

太棒了,@artf你是摇滚明星!

artf

谢谢@bernesto演示方面其实还有更新要做。 我已经准备好了更改,下次发布时会修正。

ClaudeCode

谢谢你举报,@bernesto。 关于大纲在预览模式下依然存在,这个问题很棒。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')); 组...

#57752024年3月26日作者 ctrhub2 个回答
0 个反应

Component.get('traits').clone() 已不再可用。

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Arc 版本 1.35.0 / Chromium 引擎 123.0 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?开放开发工具选择一个组件主机运行: “JS const selectedComponent = editor.getSelected(); selectComponent.get('traits').clone(); 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: “''js const selectedComponent = editor.getSelected(...

artf

如果你需要复制 traits,我建议简单地做这个操作:'JSON.parse(JSON.stringify(editor.getSelected().getTraits())'。 我不记得文档里提到过克隆特征,所以我建议避免使用非公开API。

ClaudeCode

谢谢你举报,@ctrhub。 关于component.get('traits').clone()已不再可用,这个问题非常好。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('...

#57682024年3月19日作者 rhoenerSBS1 个回答
0 个反应

BlockProperties 中“content”属性的类型错误

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v122 可复制演示链接 不适用 描述一下那个虫子 GrapeJs 文档表明,可以在块的“content”属性中添加混合内容(见 https://grapesjs.com/docs/modules/Blocks.html#mixed)。但该属性的类型定义是“字符串 |组件定义“(参见 https://github.com/GrapesJS/grapesjs/blob/dev/src/block_manager/model/Block.ts#L17)。 这会导致 TypeScript 项目编译时出现错误。 如何复现这个漏洞?定义混合值的块...

ClaudeCode

谢谢你举报,@rhoenerSBS。 关于 BlockProperties 中“content”属性类型错误的好问题。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('som...

#57572024年3月15日作者 kuntal8113 个回答
1 个反应

链接标题不可编辑

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v122,Safari 17 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?添加链接组件,尝试编辑链接文本 预期的行为是什么? 链接文本应可编辑 目前的行为是什么? 行为准则 [X] 我同意遵守本项目的行为准则

artf

感谢报告,将在下次发布中修复(https://github.com/GrapesJS/grapesjs/commit/a54f213c33ee90549ef06f3b505c455f1abfc323)。

Mauzer93

我最近也遇到了同样的问题。

ClaudeCode

谢谢你举报,@kuntal811。 关于链接标题不可编辑的好问题。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')); 组件生命周期...

#57462024年3月12日作者 rhoenerSBS4 个回答
1 个反应

当面板不在编辑器容器时,ColorPicker 偏移不正确

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v122 可复制演示链接 https://grapesjs.com/docs/getting-started.html#style-manager 描述一下那个虫子 如何复现这个漏洞?访问GrapeJS的“入门指南”文档中的“StyleManager”部分尝试在编辑器中使用该部分的颜色选择器。即使你在 .editor-canvas 中添加“position:relative”,当面板不在编辑器容器外时,颜色选择器仍然会计算错误的偏移 预期的行为是什么? 颜色选择器会显示在对应的输入旁边 目前的行为是什么? 相对偏移计算错误,选色器显示在...

bernesto

你好,@artf, 根本问题是我们试图将弹出调色板绝对放置在页面任意位置的另一个元素之上。即使原点元素不在编辑器容器节点之外,我们也需要这样做。 为满足此要求,弹出调色板不能包含在“offsetParent”的任何位置,且必须处于最高的z指数。否则,它将受其“offsetParent”可见区域的影响,并按父节点的“z-index”排序。 在我之前的补丁中,这似乎是可行的,因为示例编辑器占用了整个窗口,因此编辑器元素内的“left: 0”和“top: 0”也在正体内部是“le...

artf

@bernesto你能检查一下这个吗?因为它似乎和[你的更改](https://github.com/GrapesJS/grapesjs/pull/5704)有关。

bernesto

是的,我明白问题所在。逻辑需要考虑父节点在容器外的情况。让我看看能不能做。

#57432024年3月11日作者 davidgabrichidze4 个回答
5 个反应

Iframe 属性 src 中的 XSS 漏洞

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Edge v122 可复制演示链接 https://jsfiddle.net/bwreyq29/1/ 描述一下那个虫子 如何复现这个漏洞? 打开此链接 [https://jsfiddle.net/bwreyq29/1/](https://jsfiddle.net/bwreyq29/1/),附带在“src”属性上的 JavaScript 代码将自动执行。 预期的行为是什么? 这段代码不应该运行 目前的行为如何? 存在XSS漏洞行为准则 [X] 我同意遵守本项目的行为准则

bernesto

我觉得预读解析师这个选项是个很好的主意。它坚持“按功能插入”的概念。 那更新“fromElement”以接受字符串元素ID或布尔值怎么样?如果 bool == true,则和现在一样,解析容器 HTML。 如果字符串 ID,它会使用元素的内容,容器则像现在一样成为编辑器。然后我们可以更新文档,支持HTML脚本模板用于开发。这样可以防止刹车变化,并促进正确的使用。 “''js const editor = Grapesjs.init({ 容器:“#gjs”, fromElem...

artf

完全同意@bernesto的观点,无论我们多么努力让它安全,都永远不够,我也不想让人觉得库“非常安全”,以至于缺少服务器端验证。 当前选项(例如“allowUnsafeAttr”、“allowUnsafeAttrValue”)只避免了基本的常见内容。

bernesto

使用“fromElement”从激活的DOM元素加载时,这种情况是不可避免的。页面元素同步加载和执行。GrapesJS 永远没有机会处理和解除 XSS 的 html。 这个问题需要通过阻止恶意代码永远加载来解决。这应该在服务器存档时处理。但如果客户端需要处理,可以通过用脚本标签包裹代码,然后在加载到编辑器前对代码进行净化,就像这样: https://jsfiddle.net/bernesto/5gcxa0jm/1/ 我确实看到,在初始化时通过“components”属性加载...

#57422024年3月11日作者 bernesto4 个回答
2 个反应

在Windows 10+上构建

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v122 可复制演示链接 无 描述一下那个虫子 如何复现这个漏洞?将git检查到Windows 10+机器上按照提供的流程构建。 预期的行为是什么? 它应该和*inx系统一样建造。 目前的行为是什么? 该构建因引用 Backbone 的错误而失败: “嘘 警告内容见./src/common/index.ts 35:2-16 导出“default”(导入为“Backbone”)在“backbone”中找不到(模块没有导出) @ ./src/editor/view/EditorView.ts 16:0-39 45:21-22 68:2-6...

bernesto

是的,我做了所有常规的事情。锁定文件、更新、各种导入方式({}、require、*、full path 等) 不知道为什么,但我弄坏东西的时候,会弄得很厉害。永远是2级或3级辅助,哈哈。 我确实认为问题出在CLI,或者......配合 Backbone-Undo。也许是路径相关的,或者是符号链接,或者...... ̄\(ツ)/ ̄ 总之,我明白“时间”的含义。我已经花了太多时间了,如果你有兴趣告诉我,哈哈

bernesto

说得好。我还没试过其他版本的Node。我会试试这个方法。

artf

是的,构建/服务是由CLI管理的(我们把问题移到那里),但我不确定问题出在哪里(因为没有Windows可以测试🥲)。

#57392024年3月11日作者 rhoenerSBS1 个回答
0 个反应

ColorPickerOptions 界面输入错误

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v122 可复制演示链接 不适用 描述一下那个虫子 最新版本附带的ColorPicker界面定义了“preferredFormat”选项,期望获得“布尔值”,但Spectrum Colorpicker的文档显示必须是类型为“string”(文档:https://bgrins.github.io/spectrum/#options-preferredFormat) 这会导致 TypeScript 项目编译时出现错误。 如何复现这个漏洞?定义ColorPicker的“preferredFormat”选项,取自Spectrum文档中的值(即“...

ClaudeCode

谢谢你举报,@rhoenerSBS。 关于ColorPickerOptions界面中错误输入的好问题。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('some...

浏览所有主题