GrapesJS 问题

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

找到 220 个问题

🔍 canvas
#35492021年6月19日作者 anlumo1 个回答
0 个反应

CreateCustomEvent 无法正确处理鼠标事件

版本: 0.17.4 / git master 详细描述那个漏洞** FrameView 在这里重新打包键盘和鼠标事件: https://github.com/artf/grapesjs/blob/07061ae1307fedf2a3b9bd585ce0cb30f653f112/src/canvas/view/FrameView.js#L389-L399 我认为原因与将iframe事件重定向到父帧事件有关。这本来没问题,但“createCustomEvent”函数看起来是这样的: https://github.com/artf/grapesjs/blob/07061ae1307fedf2a3b9bd585ce0cb30f653f1...

ClaudeCode

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

#35152021年6月4日作者 anlumo4 个回答
9 个反应

Gjs 选择的风格是硬编码的

定义如下: https://github.com/artf/grapesjs/blob/88249c38577852dc3c42047356a70a12066ee6ca/src/canvas/view/FrameView.js#L303-L306 总是附加在框架上。它包含选定元素的颜色定义(那个蓝色轮廓)。这个颜色不能更改,因为这里有个“!重要”。由于这附加在正文中,在标题中添加样式表也不会覆盖它,即使我在那里也用了“!important”。 在我的使用场景中,关键问题是我想打印用 Grapesjs 创建的文档,但打印出来的模板不应该包含选取大纲。我可以写“@media print { .gjs-selected { outlin...

artf

你好@anlumo你说得对,不幸的是,组件状态样式是在 iframe 内渲染的。我尝试通过引入[这个选项](https://github.com/artf/grapesjs/blob/614fad12b729c382b2444ca8b5e584f1dafc063a/src/canvas/config/config.js#L38-L39)把它们放到户外,但这还不能支持多重选择。所以,目前唯一能正确处理它们的方法就是使用以下选项: “''js Grapesjs.init({ /...

filipecheverrya

嗨,@mingxin-yang,我相信你必须遵循@artf说的同样规则。但使用相应的类 “''js Grapesjs.init({ // ... canvasCss: ' .gjs-tools .gjs-badge { / 用于标签 / 背景色:红色; } .gjs-toolbar { / 用于工具栏 / 背景色:红色; } , }) ``

GoodPHP

发布了用于固定颜色的免费插件 边界: https://gjs.market/products/borders-color-around-selected-component

#34912021年5月27日作者 TheDude702 个回答
0 个反应

IFrame 加载后不保存 SRC / 不识别 iframes

版本: 0.17.4 你能重现演示中的bug吗?[ ] 是的[X] 不 预期的行为是什么?插入一个iFrame后,使用'editor.getHTML()'时会返回src加载页面时,iframe将被识别为iframe组件,并再次可编辑 详细描述那个漏洞 我正在添加一个选项,允许用户基于“地图”组件插入 iframe。然而,设置“src”后,editor.getHTML()只返回带有id和类的iframe标签。 任何现有的 iframe 都不会被识别为 iframe 组件,加载回 Canvas 后也无法选择或编辑。 用下面的代码,我可以像地图组件那样在画布上添加iframe,并编辑src特性,这样iframe就能正确更新,显示src定...

artf

我会在下一个版本中加入iframe支持。

ClaudeCode

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

#34852021年5月26日作者 ahmedderkaoui1 个回答
0 个反应

以HTML形式注入到画布的元素不会作为组件表现

考虑一个简单的块: 拖到画布时,可以选择该组件,并可修改其设置。 现在,我正在这样做,在卡片上添加相同的输入: '$(someElement).find(“.card”).html('<输入类型=“text”/>');' 输入输入成功添加,但表现不如之前。它无法被选中、拖拽或删除,因此无法修改设置和样式。 有没有办法在特定元素中注入方块?

ClaudeCode

谢谢你举报,@ahmedderkaoui。 关于元素以HTML形式注入到画布时,不作为组件表现的好问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.lo...

#34822021年5月25日作者 Palash-Mandal4 个回答
0 个反应

运行时更新的特性,不是编辑模式。

你好@artf 我遇到了关于某个特质的问题。当我拖放方块到画布时,它的特性在设置部分显示得很正常。但当我第二次保存并编辑,并在画布中选择了那个标签时,这个特征现在已经出现在设置的“Section”里了。 拜托拜托拜托帮帮我! '// 自定义标题组件 blockManager.add('header', { 标签:“标题”, 类别:“组件”, media: '<SVG XMLns=“http://www.w3.org/2000/svg” viewBox=“0 0 24”><path d=“M8.3 11.5h7.4V6.9l-.2-1.6a1 1 0 00-.5-.5c-.3-2-.2-.7-.3-1-.3h-.6v-.4h6.8v...

artf

你是在插件里定义自定义组件吗?

Palash-Mandal

你是在插件里定义自定义组件吗? 不。只需添加初始化函数 editor = grapesjs.init({ const dc = 编辑器。主导组件; 自定义标题组件 blockManager.add('header', { 标签:“标题”, 类别:“组件”, media: '<SVG XMLns=“http://www.w3.org/2000/svg” viewBox=“0 0 24”><path d=“M8.3 11.5h7.4V6.9l-.2-1.6a1 1 0 00-....

artf

定义新组件类型的第一个规则是将代码放入插件中。 摘自[docs](https://grapesjs.com/docs/modules/Components.html#define-custom-component-type)

#34782021年5月25日作者 eyroooon1 个回答
0 个反应

在nextjs上使用 GrapeJS

有些 CSS 功能不正常,比如 .gjs-cv-canvas 也无法正常工作。 这是我在nextjs上grapejs页面的截图 ![图片](https://user-images.githubusercontent.com/64449714/119433144-3c2fe980-bd48-11eb-8176-2beab6880396.png)

ClaudeCode

谢谢你举报,@eyroooon。 感谢你分享关于在nextjs上使用GrapeJS的报告。为了帮助团队调查并优先排序: 请提供: 一个最小可复现的例子(CodeSandbox/JSFiddle) 你的GrapesJS版本号 浏览器和操作系统信息 浏览器控制台的任何错误信息 重现问题的步骤 最有帮助的是什么: 简约代码示例(不是你整个项目) 屏幕录制或截图显示问题 明确区分预期行为与实际行为 你正在使用的GrapesJS配置 有了这些细节,维护者可以更快地识别和优先排序修复。...

#34652021年5月19日作者 anatoli-dp3 个回答
0 个反应

更新会破坏一些CSS功能

警告 请阅读并遵循接下来的三步,然后在发布问题前删除它们遵守贡献指南 https://github.com/artf/grapesjs/blob/master/CONTRIBUTING.md先快速搜索一下,看看有没有人没开同样的问题所有相关陈述/问题都必须填写/回答,否则问题可能已结案JSFiddle 入门模板 https://jsfiddle.net/szLp8h4nCodeSandbox 入门模板 https://codesandbox.io/s/1r0w2pk1vl 版本: 最近一次是直接从 GitHub 克隆的 你可以在控制台输入“grapesjs.version”获得版本 你能重现演示中的bug吗?[ ] 是的[x ]...

artf

其实正确的 API 应该是 '.components('html string')',看起来工作正常,但我会去研究重置,因为我预计工作方式也是一样的

artf

看起来 Backbone 的重置方法注入了“静默”选项,阻止 CSS 集合渲染新增样式,所以目前我更倾向于避免设置错误条件来移除这个选项,建议坚持使用正确的 API

ClaudeCode

谢谢你举报,@anatoli-DP。 更新会破坏CSS的一些东西的问题似乎是竞态条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原因...

#34622021年5月18日作者 ahmedderkaoui3 个回答
0 个反应

刷新/重新渲染画布中所有组件的特性

有没有办法重新渲染或刷新画布中所有组件的特性(这些特征是自定义的,不是内置的)?

iabhiyaan

“''js editor.on('component:selected', component => { component.set({ 特质:['名字','占位符'] }) }) ````

artf

嗯,这有什么意义?你的自定义特征应该已经能对组件变化做出反应(前提是你正确创建了它们)。

ClaudeCode

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

#34582021年5月16日作者 divesham1 个回答
0 个反应

专长:添加自定义块(比如 iframe),并像图片一样自定义,比如双击打开素材选项,在自定义 iframe 块中打开视频链接选项

警告 请阅读并遵循接下来的三步,然后在发布问题前删除它们遵守贡献指南 https://github.com/artf/grapesjs/blob/master/CONTRIBUTING.md先快速搜索一下,看看有没有人没开同样的问题所有相关陈述/问题都必须填写/回答,否则问题可能已结案JSFiddle 入门模板 https://jsfiddle.net/szLp8h4nCodeSandbox 入门模板 https://codesandbox.io/s/1r0w2pk1vl 你想给GrapesJS添加什么? 详细描述你的功能需求详细 最新版本有替代方案吗?[x] 是的(描述替代方案)[ ] 不 这是否与某个问题有关?[ ] 是的(请...

ClaudeCode

谢谢你举报,@divesham。 关于特技:添加自定义块(即iframe)并像图片一样自定义,比如双击后打开自定义素材选项,在自定义iframe块中链接视频,这真是太棒了!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改...

#34492021年5月11日作者 chiragkataria223 个回答
0 个反应

切换页面会反复调用画布样式和脚本

嗨 我正在将页面管理器集成到我的项目中。但我遇到的问题是,每当我在页面之间切换时,它会反复加载 canvas 对象中初始化时给出的 CSS 和脚本文件。 这让页面切换变得缓慢。 实施: Grapesjs.init({ pageManager: { 页码:[ { id:“第1页”, styles: '', // 或样式的 JSON 组件:“'',// 或组件的 JSON 名称:“第1页”, }, ], }, 画布:{ 风格:[ '../assets/bootstrap/bootstrap.min.css', '../assets/platforma/platforma.min.css', '../资产/editor.css', ],...

chiragkataria22

@artf 你能帮帮我吗?

artf

不幸的是,切换页面会创建一个新的iframe,所以行为是正确的。 我更倾向于移除之前的iframe,以尽量降低内存占用。一个解决办法可能是想办法重用之前的iframe,但这可能会在外部JS中引发上下文问题......所以我不确定如何正确预防这种行为。 总之,说实话,我不指望第一次加载后切换会这么慢,因为浏览器应该会缓存外部文件......你能制作一个你的经历的屏幕录制吗?

ClaudeCode

感谢你报告,@chiragkataria22。 感谢你分享关于不断切换页面、调用画布样式和脚本的报告。为了帮助团队调查并优先排序: 请提供: 一个最小可复现的例子(CodeSandbox/JSFiddle) 你的GrapesJS版本号 浏览器和操作系统信息 浏览器控制台的任何错误信息 重现问题的步骤 最有帮助的是什么: 简约代码示例(不是你整个项目) 屏幕录制或截图显示问题 明确区分预期行为与实际行为 你正在使用的GrapesJS配置 有了这些细节,维护者可以更快地识别和优...

浏览所有主题