GrapesJS 问题

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

找到 466 个问题

🔍 components
#51052023年5月11日作者 Baghunts2 个回答
1 个反应

用(prop,value)来添加style o component,是不正确的工作。

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome@latest 可复制演示链接 https://no-link.com 描述一下那个虫子 ![图片](https://github.com/GrapesJS/grapesjs/assets/133208978/3a5ce51a-fedf-4fd7-9063-a5af519690b9) ![图片](https://github.com/GrapesJS/grapesjs/assets/133208978/0b990b40-94b1-48c1-94dc-c4d81adf0368)行为准则 [X] 我同意遵守本项目的行为准则

artf

谢谢@Baghunts,发现得很好。目前的解决方法是 '.addStyle({ 'border-left': '...' })`

ClaudeCode

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

#50902023年5月3日作者 FaisalShaikhHA2 个回答
1 个反应

组件脚本函数在保存页面后运行两次

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 112.0.5615.137(官方配置)(arm64) 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 组件定义: 丢弃、保存和重新加载时,有两个地方调用的是同一个脚本。一个在保存的 HTML/JSON 里,另一个是 Grapesjs 自己添加的。 如何复现这个漏洞?添加带有脚本函数的自定义组件类型。放下它并保存页面。重新加载页面时,脚本函数运行两次。 预期的行为是什么? 脚本函数应该只运行一次。 目前的行为是什么? 脚本函数运行两次。行为准则 [X] 我同意遵守本项目的行为准则

artf

正如[这里](https://grapesjs.com/docs/modules/Storage.html#project-data)解释的,编辑项目时不应重新导入输出HTML,只需导入JSON。

ClaudeCode

谢谢你举报,@FaisalShaikhHA。 关于组件脚本函数在保存页面后运行两次,这个问题非常好。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something ch...

#50862023年5月2日作者 SagarMaria3 个回答
0 个反应

Style:property:update 和 Property onChange 都被过度触发

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 版本 112.0.5615.137(官方版本) 可复制演示链接 https://jsfiddle.net/SagarMaria/sunygp2f/3/ 描述一下那个虫子 如何复现这个漏洞?在 jsfiddle 中只需点击“Hello World”组件。观察大量控制台日志。点击画布上其他地方,重复。 预期的行为是什么? “style:property:update” 只应该在所选组件的某些样式属性更改时触发 目前的行为是什么? “style:property:update” 事件反而会多次触发,即使只是选择了某个组件 如果需要执行某些代码...

artf

该行为是正确的,因为“style:property:update”会在风格管理器[属性](https://grapesjs.com/docs/api/property.html#property)的任何更新时触发(不仅仅是其值)。所以针对你的具体情况,你需要以这种方式更新回调 “''js Editor.ON('style:property:update', ({ property, to }) => { 检查房产名称,以及更新是否与价值相关 如果 (property.get...

SagarMaria

你好,@artf感谢你的快速回复,但实际上问题的一部分仍然是,即使你做了更改,比如点击“中心”对齐无线电选项和你建议的 if 语句,后续选择该组件时,'style:property:update' 值仍然会被 loging 出去,'property' 和 'to' 仍是现有值(即使你不改动,只选择组件)。下面有个简短的视频,我也根据你的建议更新了 jsfiddle。 有没有办法直接监听收音机值的变化,或者在样式管理器里点击不同的收音机选项?我也尝试使用属性的“onChang...

ClaudeCode

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

#50792023年4月28日作者 TO-JHummel2 个回答
0 个反应

用 Vue+Vite 拖入嵌套组件时会崩溃。

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Firefox 112.0.2(64位) 可复制演示链接 https://github.com/TO-JHummel/grapesjs-issue 描述一下那个虫子 如何复现这个漏洞?启动最小的vue+vite页面。将capitalizedfor块放入编辑器中。将一列模块放入编辑器中,放置在另一个模块之外。将capitalizedfor块上的每个div拖拽到1列块中。 预期的行为是什么? 方块只需直接放入柱中即可。 目前的行为是什么? 浏览器在放下最后一个块时会卡死。 行为准则 [X] 我同意遵守本项目的行为准则

artf

这和这个[https://github.com/GrapesJS/grapesjs/issues/4497]类似,你必须把编辑器实例放在Vue实例之外,才能绕过它的代理

ClaudeCode

谢谢你举报,@TO-JHummel。 关于用Vue+Vite拖入嵌套组件时崩溃的问题很棒。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something...

#50532023年4月17日作者 ngoc1992 个回答
1 个反应

在 v0.21.1 中,类型被改为“任意”

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? FireFox 112.0(64位) 可复制演示链接 没有演示链接 描述一下那个虫子 我最近从v0.20.1升级到了v0.21.1。 很多在 v0.20.1 中存在的类型在 v0.21.1 中被改成了“任意”。 例如, v0.20.1中'Components.addType'的类型是'AddComponentOptions' ![图片](https://user-images.githubusercontent.com/53241275/232444631-243b6872-1655-490b-b5b4-5c5ad546a315.png) 类型“组件...

artf

谢谢@ngoc199如果之前版本还有其他缺少声明的话,请告诉我

ClaudeCode

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

#50522023年4月16日作者 innothetechgeek2 个回答
0 个反应

通过Vue入口加载的样式无法工作

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 无 描述一下那个虫子 我正在把grape.js插件集成到vue.js。我有一个预构建页面,里面有预构建的HTML和CSS。 当我把页面vue.js组件加载到编辑器时,所有vue.js样式都会丢失。但如果我移除 grapeJs 初始化方法,我的样式就正常工作了。 请帮帮我。我想把通过vue.js入口加载的样式加载到编辑器里 行为准则 [X] 我同意遵守本项目的行为准则

artf

@innothetechgeek遇到真正的bug问题,你应该做一个可复现的演示,因为通常会有一些与核心本身无关的问题。无论如何,根据你的描述,你可能想通过['canvas' options](https://grapesjs.com/docs/modules/Components-js.html#template-related)定义你的样式条目。

ClaudeCode

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

#50492023年4月13日作者 ronaldohoch4 个回答
2 个反应

拖拽由图片和链接组成的组件时出现的问题

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 勇敢的最后版本 可复制演示链接 https://jsfiddle.net/rp7oc96v/1/ 描述一下那个虫子 嗨,亚瑟! 我正在创建一个新组件,一个链接中的图片,就像“mj-image”组件一样,但我卡在一个配置里,或者说是个bug...... 如何复现这个漏洞?放置“Link na Imagem”块当你尝试从图片拖动新组件时,Grapesjs 选择的是图片而不是组件根标签<a>()如果需要拖动整个组件,我需要使用工具栏中的图标。 预期的行为是什么?子组件没有父元素就不会。 目前的行为是什么?如果子节点 img 元素没有属性 'data-gjs...

gustavohleal

嗨! 我测试过你的方案。它确实能正确更改图像,且将图像锁定在主组件内,你可以移动它。模型中的“src”属性会被更改,但当你移动组件时,它会回到占位符图像。如果你更改图片然后打开视图代码模态,你会发现“src”属性不像模型中那样发生变化。我认为这是因为Grapes在导出代码中没有为图片设置“id”。 检查打印件: 在组件丢弃时不设置图像: ![图片](https://user-images.githubusercontent.com/22385451/232051993-20...

artf

@gustavohleal我的错误,你必须直接更新'src'属性,而不是属性'image.set({ src: asset.getSrc() });'

artf

使用 'data-gjs-locked=“true”属性忽略图片,正确更新你的自定义组件 “''js 移除runCommand(“open-assets”); 因为在模型端运行它没什么意义 你可以通过方块激活组件(https://grapesjs.com/docs/api/block.html#properties) 通过使用“激活”属性 init(){ editor.runCommand(“open-assets”); } 在视图中处理资产更新 浏览量:{ 事件:{ db...

#50372023年4月6日作者 siddhi13974 个回答
0 个反应

如何在可文本组件内将外部文本拖入特定的索引中?

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 匿名 描述一下那个虫子 如何复现这个漏洞?...... 预期的行为是什么? ...当我在编辑器中拖拽外部内容时,它应该会被丢在特定位置 目前的行为是什么? ...它在该位置被丢弃,但与组件中已有的文本重叠 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: “''js 你的代码在这里 ```行为准则 [X] 我同意遵守本项目的行为准则

siddhi1397

你好@artf, 当我在编辑器中拖动外部内容时,它应该被丢在特定位置,但它与组件中的现有内容重叠。那么,有没有办法让我把文字放在特定位置而不让文字重叠? 顺便说一下,我用的是canvas:dragdata来获取外部内容。

artf

@siddhi1397请不要把bug问题作为功能或问题打开

siddhi1397

好吧,抱歉。@artf 但请问能否帮忙说明如何实现?

#50192023年3月31日作者 julia-alberici2 个回答
0 个反应

使用 loadProjectData() 时无法在编辑器初始化时设置预览模式

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v111 可复制演示链接 https://codesandbox.io/s/grapesjs-react-components-forked-h3j496?file=/src/index.js 描述一下那个虫子 如何复现这个漏洞?用 Reactjs 启动 Grapesjs 项目编辑器初始化后立即使用 'loadProjectData(data)'通过 'editor.onReady(() => { editor.runCommand(“preview”); } 设置预览模式;(或者实际上任何其他方式) 预期的行为是什么? 编辑器应该包含...

julia-alberici

声明一下,这其实不算是个bug,我能实现预期的行为,替换了'editor.onReady(() => { editor.runCommand(“preview”); });' 与 'editor.on('update', () => { editor.runCommand('preview'); });`

ClaudeCode

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

#50032023年3月23日作者 ngoc1992 个回答
0 个反应

Chrome上的拖拽非常慢

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬111 可复制演示链接 https://jsfiddle.net/9zf4kd6e/——这是设计师模式的演示 描述一下那个虫子 如何复现这个漏洞?添加一个带有“dragMode”的绝对图像组件上传足够大的SVG图片。你可以使用[此图](https://freesvg.org/anime-girl-warrior)拖动图像拖动文本组件 预期的行为是什么?SVG图像在拖拽时不会被调整大小将SVG图像快速移动到正确位置当存在较大的SVG图像时,组件移动速度较快 目前的行为是什么?SVG图像在鼠标滑动后自动调整大小,紧跟光标位置。手动调整图像大小后,可以拖...

artf

@ngoc199我已经讨论了大部分关于绝对模式的问题[这里](https://github.com/GrapesJS/grapesjs/issues/3770#issuecomment-944915841)。我觉得调整大小的问题可以很容易地加入,但大型嵌入的SVG图片(默认情况下,没有外部资源存储,图片是内嵌的)看起来更像是浏览器的限制

ClaudeCode

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

浏览所有主题