GrapesJS 问题

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

找到 877 个问题

🔍 question
#33952021年4月9日作者 Abhisheknanda13444632 个回答
1 个反应

观察 -:移动视图不一致

你好@artf请观看附带的视频。 我检查过移动视图,发现移动视图和编辑移动视图不同。 大家有什么看法吗? 或者说,应该是这样工作 [屏幕录制 2021-04-09 2:55.45 PM.zip](https://github.com/artf/grapesjs/files/6284716/Screen.Recording.2021-04-09.at.2.55.45.PM.zip)

Abhisheknanda1344463

已经修好了。 问题已定。

ClaudeCode

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

#33942021年4月8日作者 alext27933 个回答
1 个反应

UndoManager add

如何通过自定义富文本编辑器 CKeditor 向 UndoManager 添加撤销/重做事件?

Ju99ernaut

“UndoManager”通常会追踪组件模型的变化,所以如果你能以某种方式记录组件中rte的变更,可能会有效。我不太确定具体怎么操作,所以无法给出更详细的描述。无论如何,ckeditor 自带了撤销管理器,或者你也可以用它,你可能需要在配置里包含撤销/重做按钮

artf

是的,正如@Ju99ernaut已经提到的,所有主要的RTE编辑都实现了自己的撤销管理器。事实上,当启用RTE(内置或自定义)时,所有快捷方式都会被禁用,以避免干扰文本编辑(当你编辑文本并按CTRL+Z时,你期望能撤销已编辑的文本)。

ClaudeCode

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

#33902021年4月6日作者 christosapos2 个回答
0 个反应

通过点击组件内部更改复选框组件的特征。

通过点击Canvas内的组件,能否更改复选框组件简单中的“勾选”特性?

artf

是的,当然,性状读取的是组件模型的值,所以如果你更改绑定值,性状应该会改变

ClaudeCode

谢谢你举报,@christosapos。 关于通过点击“组件内部”更改复选框组件特征的好问题。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('somethin...

#33892021年4月6日作者 xinnai4 个回答
0 个反应

多选某些元素和更改样式只能对最后选中的元素有效

你好,当我用“shift”多选某些元素,并在styleManager中更改样式时。只有最后点击的元素才会更新样式。你能帮我解决这个问题吗? https://user-images.githubusercontent.com/23135336/113699004-9d075200-9707-11eb-893c-9b3734e2d0b3.mov

Ju99ernaut

不确定有没有这个选项,风格管理器可能还没有实现多组件编辑功能。你可以用类作为替代方案。

artf

它在演示中实际上是有效的,你能制作一个可复现的演示吗?

no-response[bot]

由于我们请求原作者提供更多信息未获回应,本期已自动关闭。仅凭当前期刊中的信息,我们没有足够的信息采取行动。如果您有答案或找到我们需要的答案,请随时联系我们,以便我们进一步调查。

#33882021年4月5日作者 ahmedderkaoui2 个回答
1 个反应

天赋:无需输入即可作为特质添加指示。

我想添加一个特征的指示。 我的组件有以下特性: 对于类型“dateformat-indication”,我创建了以下类型: 然而,即使它不在模板里,我还是会收到我创建的输入: ![git](https://user-images.githubusercontent.com/58575867/113580735-07dc5e80-961e-11eb-8c6d-a24052984d05.png) 有没有办法禁用该特质的默认输入?

ahmedderkaoui

使用以下方法效果很好:

ClaudeCode

谢谢你举报,@ahmedderkaoui。 关于FEAT:在不输入的情况下添加指征作为特质的好问题。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something ch...

#33872021年4月5日作者 assadnazar4 个回答
0 个反应

功能:通过URL加载

我们能不能添加一个通过URL加载的选项? 例如: 我们把一个URL传递给初始化,然后它用编辑器初始化页面?

Ju99ernaut

由于CORS的限制,很难提出通用解决方案。

artf

由于CORS的限制,很难提出一个通用的解决方案。 没错,如果你打算加载某个外部网站的 HTML,你应该有服务器来获取内容。

assadnazar

@Ju99ernaut,@artf我想加载相同域名的页面来编辑 HTML。

#33852021年4月3日作者 pranay22102 个回答
0 个反应

如何用葡萄和nuxtj一起使用?

我正在尝试用 nuxtjs 框架来完成 grapesjs,有什么解决方案吗?

artf

我觉得关键是为GrapesJS创建一个Vue组件,并在你的一些页面中使用它

ClaudeCode

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

#33832021年4月2日作者 KieronWiltshire4 个回答
0 个反应

可以把样式包含在HTML里吗?

我目前用 grapesjs 来构建邮件模板,但当我导入带有<style>标签的 HTML 时,在存储之前,HTML 和 CSS 会被拆分。当这些存储在后端数据库时,HTML 里没有 <style> or <link> 标签,而是单独存储。有没有办法防止这种情况,并存储两个版本的编译版本,或者至少能在发送到服务器之前注入样式?

Ju99ernaut

Grapesjs不支持内联,但你可以用这里用的同样方法 https://github.com/artf/grapesjs-preset-newsletter。它使用 'juice' 包来合并 html 和 css

artf

是的,目前内联CSS被解析为CssComposer,并且[已从DOM](https://github.com/artf/grapesjs/blob/bb24e02c66c6bcb3104bf2c99fd3ef30a4d1e1f3/src/parser/model/ParserHtml.js#L290-L302 移除)。这允许编辑器编辑其样式。

ronaldohoch

关于它有一个问题。 ckeditor 如何用内联样式编辑跨度,关闭后保留并重新打开同一个模板?

#33822021年4月2日作者 Squirrel14892 个回答
1 个反应

免费版本下无法添加超过两个项目

![截图(11)](https://user-images.githubusercontent.com/57554308/113369015-1a505280-9315-11eb-8d48-c9b8bdef335e.png)警告 请阅读并遵循接下来的三步,然后在发布问题前删除它们遵守贡献指南 https://github.com/artf/grapesjs/blob/master/CONTRIBUTING.md先快速搜索一下,看看有没有人没开同样的问题所有相关陈述/问题都必须填写/回答,否则问题可能已结案JSFiddle 入门模板 https://jsfiddle.net/szLp8h4nCodeSandbox 入门模板 http...

Ju99ernaut

“葡萄糖”和“葡萄滴”是两个独立的项目,你应该在这里提出你的问题 https://spectrum.chat/grapedrop

ClaudeCode

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

#33812021年4月2日作者 pranay22103 个回答
1 个反应

在组件间切换会产生最大呼叫堆栈大小误差

你好,artf,感谢你打造了这样强大的定制CMS工具。 我正在项目中实现一个新页面功能,所以我用你的参考来切换组件,但出现了错误,请问能否指导我如何在面板点击“添加新页面”按钮时构建新页面? 这是我的代码

Ju99ernaut

我觉得数组不是存储页面对象的最佳方式,所以运行数组操作获取页面并加载页面对调用栈来说可能太繁琐了。你应该考虑只在需要时才把页面加载到内存里,并存储在类似数据库的环境中,而不是数组。你可以试试这个插件 https://github.com/Ju99ernaut/grapesjs-template-manager

artf

我不确定你那边的情况,但我建议关注#3206,因为内置页面管理器快准备好了(我会更新那个问题)

ClaudeCode

谢谢你举报,@pranay2210。 关于在组件间切换会导致最大调用堆栈大小错误的建议很棒!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:*...

浏览所有主题