GrapesJS 问题

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

找到 877 个问题

🔍 question
#33522021年3月19日作者 harsh2014 个回答
1 个反应

如果标签主体为空,默认内容在使用setComponents时会入

版本: 最新 你可以在控制台输入“grapesjs.version”获得版本 你能重现演示中的bug吗?[X] 是的[ ] 不 预期的行为是什么? 带有空体的组件不应被填充默认内容。 目前的行为是什么? 当我们创建一个空节点并用 setComponents() 作为输入传递给 GrapesJS 时,如果标签主体为空,扩展 TextNode 的组件会添加默认内容。 详细描述那个漏洞** 当我们创建一个空节点并用 setComponents() 作为输入传递给 GrapesJS 时,如果标签主体为空,扩展 TextNode 的组件会添加默认内容。我们有用例,有些标签可能是空的。有没有办法通过 setComponents 插入禁用它?...

artf

你在组件定义中定义了默认的“内容”,所以空的定义会用它作为默认。 只需将那个“内容”从组件定义中移动到“段落”块。

harsh201

@artf 有人能帮帮忙吗?

harsh201

谢谢@artf!完全忘了要在方块层面添加。

#33502021年3月18日作者 devtechk3 个回答
4 个反应

未捕获类型错误:无法访问属性“el”,n未定义

你好,我用的是 grapesjs 0.16.44,只有在 Firefox 里遇到这个问题。 使用 Grapesjs Block 基本预设。 有人能帮帮我吗? 非常感谢! ![图片](https://user-images.githubusercontent.com/22073497/111650465-9b7ff380-8805-11eb-87a6-7b653997367d.png) ![图片](https://user-images.githubusercontent.com/22073497/111650496-a5a1f200-8805-11eb-91e9-1f16c3dc7f0b.png)

artf

试着把你的代码放进去 “''js editor.on('load', () => { // ... }) ```

devtechk

问题“解决”后移除: 正在寻找更好的解决方案,先让块面板自动对焦激活 我还注意到其他冲突,比如自定义模态和导出插件中的模态(点击导出插件时触发了FFox上的自定义模态),或者比如我重新设置过的面板又出现了,我已经把所有内容放进代码里解决了

ClaudeCode

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

#33492021年3月18日作者 maivanchuong953 个回答
0 个反应

优点:从文件压缩包导入模板

大家好 我想从之前由 grapesjs 导出的文件导入 zip 文件。你能帮帮我吗?

artf

这和核心库无关。如果需要,你可以自己做插件

Sunsiha

你好@maivanchuong95你有没有想出什么解决办法?

ClaudeCode

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

#33482021年3月18日作者 FreshImmuc2 个回答
0 个反应

怎么会这样

嘿,我知道有人解释过怎么用这个,但我没明白......我该如何使用这个?

FreshImmuc

:/

ClaudeCode

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

#33472021年3月18日作者 xinnai4 个回答
0 个反应

我怎样才能获得无压缩的 JS 代码以便编辑?

你好,感谢你帮我解答这个问题。我想用自己的JSEditor来编辑html、css和js。 1、首先,我用 'getHtml', 'getCss', 'getJs' 在我的 JSEditor 里显示代码。我发现JS代码是压缩的。我怎样才能获得无压缩代码? 我用的是'编辑器'。CodeManager.getCode(model, 'js')',而且它也是压缩版的。我看了源代码,也不太明白为什么 CodeManager 能显示无压缩代码。 2、还有一点是:当我设置JS代码,比如“document.getElementById(”wrapper“).style.background = ”red“'时,并做以下操作: 'const htm...

artf

组件用JS的“脚本”依赖于你源代码中的同样代码。比如,如果你创建了一个插件,然后用webpack/babel构建它,组件就会打印构建结果。我想你可以为你的“脚本”组件单独创建 js 文件,然后让捆绑器忽略那些文件。

xinnai

@artf 你好,我不确定你是否理解我的问题。 我想在我自己的 js 编辑器里编辑 js 代码,首先我用 'getJs(') 从你的编辑器里设置了 js 代码,但你demo.html里看起来是这样的: ![1444126130](https://user-images.githubusercontent.com/23135336/112428513-3b91cb80-8d76-11eb-91de-ce51a8500203.jpg) 这些代码都是压缩的。我想要像这样一个未压缩...

artf

“autoBeautify” 是传递给 CodeMirror 的一个选项,但无论如何,它可能会美化代码,但不会解压,因为代码本身就是这样存储在组件里的

#33462021年3月18日作者 xinnai4 个回答
0 个反应

我能自己开发样式管理器并方便地绑定属性吗?

我想用像 Element-UI 这样的 UI 框架自己构建样式管理器,快速做出一个美观的界面。但我该如何将属性绑定到选定的组件上?我没看到像“setProperties to an element...”这样的API。你能帮我讲讲怎么做吗,非常感谢!!

RutujaBadbe

#2296 这可能对你有帮助!

artf

我想如果你需要从零开始创建样式管理器,这种方法应该可行 “''js 让targetsToStyle = []; const eventToListen = 'component:toggled component:update:classes change:state change:device'; const sm = 编辑。风格经理; editor.on(eventToListen, () => { targetsToStyle = editor.getSelected...

xinnai

@artf 这正是我需要的!非常感谢!

#33442021年3月17日作者 NagarRahul3 个回答
0 个反应

FEAT:我正在尝试用getJs()方法获取js,但得到的是空值。我该如何获得JS?

![图片](https://user-images.githubusercontent.com/42827466/111476570-4b952400-8754-11eb-8d3c-1b8b9d29156c.png)

NagarRahul

@artf

artf

这种方法需要你组件中使用的 JS。所以,如果你没有带有 JS 的组件,它就会是空的

ClaudeCode

谢谢你举报,@NagarRahul。 关于FEAT:我正在尝试用getJs()方法获取js,但得到的是空值。我该如何获得 js?。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => con...

#33432021年3月17日作者 neilkyoung4 个回答
0 个反应

使用 keepEmptyTextNodes 时出现非法调用错误

版本: 0.16.44 你能重现演示中的bug吗?[x] 是的[ ] 不 设置'编辑器'。Parser.getConfig().keepEmptyTextNodes = true;' 在控制台中,然后尝试将表单拖入一个两列插件。 预期的行为是什么? 详细描述那个漏洞 据我观察,当定义了可丢弃属性时,“keepEmptyTextNodes”会抛出带有 Sorter.js 的错误。当它试图确定有效性时,最终会先获得文本节点,导致匹配比较失败(文本节点不支持匹配)。 目前的行为是什么?* 问题区域似乎是下面Sorter.js 这是因为tempModel拥有文本节点,可以包裹块中定义的内容。当移除它以获得 dropModel 时,我们得到...

artf

嗯,是的,这很合理,也许我们应该选第一个“有效”元素(也就是真正支持“匹配”的那个)。 但我也很好奇你关于使用“keepEmptyTextNodes”的理由是什么。几天前我其实还在考虑把它😂拆掉

neilkyoung

@artf 我们用于网页创作的系统实现了这一点。不过现在我们已经说服他们关闭了这个功能,感谢你上面的评论:-D

artf

太好了,那我就关上了。如果你那边的变更有问题或不同,请告诉我

#33422021年3月17日作者 RutujaBadbe2 个回答
0 个反应

组件脚本中的 jQuery 无法正常工作

嗨! 我尝试过在Canvas和index.html中添加jQuery。 我正在这样用canvas添加它—— 'canvas = 编辑。画布; const script1 = document.createElement('script'); script1.src = 'https://code.jquery.com/jquery-3.6.0.min.js'; canvas.getDocument().head.appendChild(script1);' 在HTML页面里我把它加成了script标签——'<script src=“https://code.jquery.com/jquery-3.6.0.min.js”></scr...

artf

这里你可以看到如何正确加载依赖 https://grapesjs.com/docs/modules/Components-js.html#template-related

ClaudeCode

谢谢你举报,@RutujaBadbe。 错误 ReferenceError: $ 未定义 发生在 Canvas 尝试访问属性时,尚未完全初始化组件生命周期。这是GrapesJS中常见的竞争条件。 立即解决办法: 如果你控制代码,可以用空检查包裹调用: “JavaScript 如果(component && typeof component.getDocument === 'function') { 你的准则 } ``` 根本原因分析: Canvas 在调用 'getDocu...

#33412021年3月15日作者 HeyWrecker4 个回答
2 个反应

问题:社交媒体群组 - Facebook

你好, Facebook社交媒体组件是用来提供指向企业或组织Facebook页面的链接,还是专门用来分享与你时间线相关的内容?看起来是后者,尽管我觉得这有点反直觉,因为很多邮件的页眉和页脚只是提供社交媒体账户的链接。我只是想确认一下它的设计方式,以及如果它确实按设计正常运行,有没有什么变通方法或计划改变这种行为。 此致, 里克

artf

我猜你就是在找这个 https://github.com/artf/grapesjs-mjml

HeyWrecker

啊,那是我的错,谢谢!

HeyWrecker

作为后续,我确认了Instagram社交部分确实链接到了Instagram的主页。而Facebook选项则不链接到Facebook页面。

浏览所有主题