GrapesJS 问题

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

找到 3,464 个问题

#40992022年1月25日作者 jloguercio2 个回答
0 个反应

“Using draggableComponents: false”仍然会拖动(克隆?)某些元素,如果我尝试编辑文本

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome v96可复制演示链接 https://jsfiddle.net/809enL2w/1/描述一下那个虫子 我用domComponents: { draggableComponents: false }来避免拖动组件,只有在工具栏里用箭头拖动时才会,但如果快速选择或编辑文本,它仍然会拖动/克隆/复制选中的文本和其他组件 https://user-images.githubusercontent.com/12191804/150874942-73b3b714-5a9b-4e87-81b4-56ecd4dfb0b9.mp4 这是个bug吗?或者我该...

artf

是的,看起来原生的HTML5 D&D仍然能支持文本选择,我会试着修复。

ClaudeCode

谢谢你举报,@jloguercio。 “Using draggableComponents: false” 的问题在我尝试编辑文本时仍然会拖拽(克隆?)某些元素,这似乎是竞赛条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:** 如果还没测试过,请用最新的Gra...

#40972022年1月24日作者 Joshmamroud3 个回答
1 个反应

MousePosFetcher 在 resizer config & change:style listener 无法工作

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 勇敢 V1.34.81 可复制演示链接 https://jsfiddle.net/joshmamroud/vkrcxuzb/41/ 描述一下那个虫子 如何复现这个漏洞?在画布上添加一个网格块调整列大小注意 mousePosFetcher 和 this.listenTo(this, 'change:style', ...) 的控制台日志没有显示。 预期的行为是什么? 当 mousePosFetcher 被叫时,也应呼叫 CB 当从this.listenTo(this, 'change:style', this.updateWidth)调用“change...

artf

你好@Joshmamroud呼叫 CB,当 mousePosFetcher 被呼叫时 这并没有发生,因为“可调整”选项并不会直接传递给调整器,而是通过[“resize”命令(https://github.com/artf/grapesjs/blob/master/src/commands/view/Resize.js)传递。你可以看到鼠标PosFetcher被画布处理。我可以更新命令以实现这种自定义,但请记住画布会做更多逻辑来获得正确的坐标。目前,你可以自己[扩展命令](h...

Joshmamroud

谢谢@artf!这说得通。

ClaudeCode

谢谢你举报,@Joshmamroud。 关于 mousePosFetcher 在 resizer 配置和 change:style 监听器无法工作的好问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on(...

#40942022年1月22日作者 sridhar3914 个回答
0 个反应

在Chrome的编辑器中拖放块时,无法拖放块块

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 版本 97.0.4692.71(官方构建)(64位) 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?在编辑器中拖放基本方块 预期的行为是什么?在编辑器中拖放基本方块,编辑器中应该会显示 目前的行为是什么? 在编辑器中拖放基础方块,无法拖放方块 在我们的项目中,在编辑器中拖放基础块时,无法拖放块 在Firefox浏览器中,编辑器中基本方块的拖放操作正常工作 https://user-images.githubusercontent.com/17172525/150640943-5cb5...

artf

我这边没看到问题(最新版 Chrome)。

sridhar391

@artf 我们使用的是 Ubuntu 操作系统,配备了最新版本的 Chrome 浏览器,请给我们举个拖放功能调试示例,并告诉我们拖拽时是否调用了回调函数

Vac1911

我也在用Ubuntu + Chrome,演示版、文档里的示例和本地安装版本都遇到同样的问题。这是我收到的错误信息: 注意:无论我丢弃哪个方块,错误都是一样的 https://github.com/artf/grapesjs/blob/30bb15b71db1b38efadef8500fb70c80821a1dd3/src/dom_components/view/ComponentImageView.js#L32

#40832022年1月20日作者 henzigo4 个回答
1 个反应

Set root 不起作用

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Safari 15.0可复制演示链接 https://jsfiddle.net/adw6y12f/9/描述一下那个虫子 你好, 我正在尝试按照[这里](https://github.com/artf/grapesjs/pull/1185#issuecomment-395967321)描述的设置编辑器的根组件。不幸的是,这方法不行,我可以编辑所有HTML内容。 谢谢你的建议,或者帮我修复那个bug:) 如何复现这个漏洞?创建包含一些 div 的 HTML将“id”或“class”设置为你想作为根层的某个div将该“id”设置为“init”方法的根元素: “...

artf

是的,LayerManager模块本身没有任何文档。确实,它正在等待重构的名单上,一旦完成,我们可以发布更多关于其使用情况和API文档的内容。 无论如何,我看到你之前说过你想用我的演示示例,但用倒置逻辑(只启用已知的部分)。嗯,我试过了,但不幸的是,我之前发现了一些需要修复的问题。一旦下一个版本准备好,我会发布演示示例。

artf

是的,我看到了LayerManager里根配置的问题。临时的解决办法是触发图层面板渲染时的根更改: “''js editor.on('run:core:open-layers', () => 编辑器。Layers.setRoot('#editable')); ``` 不过,LayerManager的根节点并不决定你的组件是否可编辑,它在这里的作用只是在LayerManager界面面板里更改根节点。 如果你需要禁用模板的部分内容,这大概就是你要找的:https://jsfid...

henzigo

谢谢你的回答。如果能有一些关于“根”元素的文档说明会更好,因为只有在PR/issue里才会提到。

#40822022年1月20日作者 jloguercio3 个回答
0 个反应

从画布框中移除一些初始样式

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v96 可复制演示链接 没有演示 描述一下那个虫子 当我加载某个模板时,编辑器会添加一些初始样式,比如下面的图片,我该如何设置或移除某些样式?举个例子:我需要移除Webkit的滚动条样式,因为它会修改模板内侧的所有滚动条。 ![test123](https://user-images.githubusercontent.com/12191804/150230086-60edec9c-c0a8-45dc-a91b-4ec583952266.PNG)行为准则 [X] 我同意遵守本项目的行为准则

artf

检查主编辑器的配置选项(例如“baseCss”)https://github.com/artf/grapesjs/blob/dev/src/editor/config/config.js 请不要用问题漏洞来提问,这种情况下请开启讨论。

jloguercio

非常感谢

ClaudeCode

谢谢你举报,@jloguercio。 从 frame canvas 移除部分初始样式的问题似乎是竞赛条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团...

#40792022年1月17日作者 jloguercio2 个回答
0 个反应

新版本 v0.18.1 破坏了 styleable:change 上 !important 的脚本

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v96 可复制演示链接 没有演示 描述一下那个虫子 我用下面的代码把所有样式都设置为 !重要 '// 让所有风格都重要以覆盖元素类 editor.on('styleable:change', (model, property) => { const value = String(model.getStyle()[property]); 如果 (value.indexOf('!important') === -1) { model.addStyle({ [property]: value + ' !important' }); } });...

artf

嘿,兄弟,我还没写完发布😅稿,冷静点...... 请在这里阅读 https://github.com/artf/grapesjs/releases/tag/v0.18.1 风格管理器经过大量更新,如果有什么不行,没人会强迫你升级......

ClaudeCode

谢谢你举报,@jloguercio。 *新版本v0.18.1破坏了脚本,使styleable:change中!重要似乎是竞赛条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:** 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeS...

#40762022年1月17日作者 diemkay4 个回答
0 个反应

XSS通过组件属性的漏洞

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 97.0.4692.71 可复制演示链接 https://jsfiddle.net/ovrz5ug2/4/ 描述一下那个虫子 你好——我们在多人游戏场景中使用 GrapesJS 时遇到了这个 XSS 漏洞,几个特权用户可以通过编辑器(即非开发者)对模板和组件进行修改。实际上,这使他们容易受到组织内部攻击,一个用户添加了恶意代码,另一个用户可能发现并运行。 如何复现这个漏洞?在组件的“id”属性中添加恶意代码,可以直接在HTML中或通过特征管理器(并保存)——在这种情况下,'id=“<details/open/ontoggle=alert...

artf

谢谢@diemkay如果你有任何建议,请参考这个问题:https://github.com/artf/grapesjs/issues/3082

diemkay

@artf 谢谢,但我已经看过那个工单了,它并没有涵盖我这里描述的问题。 注入不在实时预览中,而是在样式管理器中,它尝试通过设置“.innerHtml”来显示组件的“id”。

artf

是的,抱歉,关得太早😁了。我会试着在下一个版本修复。

#40712022年1月14日作者 clonefunnels2 个回答
0 个反应

页面上的背景图片无法使用,因为CSS加载时没有;在URL末尾

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 和 Firefox 可复制演示链接 https://www.teamfunnels.net/login.php 演示演示 描述一下那个虫子 缺失要求;.png之后) 当页面上有背景图片但没有显示时,编辑器会这样加载。 <style> #i7u3f{ 背景-图像:URL(https://www.teamfunnels.net/assets/202201141203/img/hero-bg.png) 背景-位置:顶部中心; 背景尺寸:封面; } #i6o6l{ 背景-图片:URL(https://www.teamfunnels.net/as...

clonefunnels

我觉得是换弦导致了这个问题。 抱歉

ClaudeCode

谢谢你举报,@clonefunnels。 页面背景图片无法正常工作的问题,因为CSS加载时没有;URL 末尾似乎存在竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:** 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSan...

#40592022年1月8日作者 miladmeidanshahi2 个回答
1 个反应

选择器转义函数不支持 TailwindCSS 类

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome v97描述一下那个虫子 在第 https://github.com/artf/grapesjs/blob/dev/src/selector_manager/model/Selector.js#L171 行,选择器转义函数不允许使用“/”和“.',因此我们不能使用一些顺风类,比如”basis-1/2“和”inset-0.5“...... 也许这个'/([^a-z0-9\w-\/.:]+)/gi'正则表达式会有帮助。行为准则[x] 我同意遵守本项目的行为准则

miladmeidanshahi

抱歉,我发现这个配置 https://github.com/artf/grapesjs/blob/e52b5c29e4346dba7367b769a44d99a2226e025f/src/selector_manager/config/config.js#L17

ClaudeCode

谢谢你举报,@miladmeidanshahi。 selector escape 函数不支持 tailwindcss 类的问题似乎是竞态条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(...

#40582022年1月8日作者 clonefunnels2 个回答
0 个反应

连字符改成“by editor messing modern coding”。

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 铬可复制演示链接 没必要——明显的问题描述一下那个虫子 代码需要这样: data-zanim-lg='{“from”:{“opacity”:1,“x”:70},“to”:{“opacity”:1,“x”:0},“ease”:“CubicBezier”,“duration”:0.8,“delay”:0.3}' data-zanim-xs='{“from”:{“opacity”:1,“y”:-37},“to”:{“opacity”:1,“y”:0},“ease”:“CubicBezier”,“duration”:0.8,“delay”:0.3}' 编辑器会这...

artf

这不是个bug,而是HTML中属性转义的工作原理。 “''js domEl.innerHTML = '<div data-attr='{“key”: “value”}'>Text</div>'; domEl.innerHTML; -> '<div data-attr=“{”key“: ”value“}”>Text</div>' ```

ClaudeCode

谢谢你举报,@clonefunnels。 连字符改为“by editors messing up modern coding”的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:** 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复...

浏览所有主题