GrapesJS 问题

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

找到 3,464 个问题

#32212021年1月7日作者 lebonsavane2 个回答
0 个反应

按钮进入文本区域

大家好, 我需要在文本区域里放一个按钮,我该怎么做?是属性需要修改还是别的什么?而且这真的有可能做到吗? 谢谢你的回复@artf

artf

不行,文本区只包含文本

ClaudeCode

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

#32192021年1月6日作者 Abhisheknanda13444632 个回答
0 个反应

为块添加类型,并带类名的 CSS

你好@artf 我卡在一件事上,我想添加一个模块,也想用职业名称来增加风格 这是我的代码 -: 这正好给了我想要的效果 HTML部分是HTML代码,样式部分是样式部分,但我想为它添加一个新的特征,以及如何在这里定义类型 另一方面,当我定义类型并做类似的事情时 添加一个新特性后,它给了我 div 标签和内联样式,如截图所示。 你能帮我解答一下吗 谢谢 如果我在组件中定义内容,那我如何用类名定义样式 <img width=“413” alt=“截图 2021-01-06 上午11:04 24” src=“https://user-images.githubusercontent.com/20657737/103745089-e242b...

artf

“''js 内容:{ 内容:section_content,// <- 你应该用“components”,而不是“content”...... 输入:'section', } '' 帮自己一个忙,别再把整个区块定义成块,采用组件导向的方法,这样你的块主要会是这样:'''js bm.add('custom-section', { label: 'Section', media: '<svg...>', 内容:{ 类型:“自定义区块”}, ... }); ```

ClaudeCode

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

#32182021年1月5日作者 bgrand-ch4 个回答
2 个反应

如何添加带有内联样式的新HTML元素?

我想在“rte.selection()”周围添加一个带有内联样式的新HTML元素。 以下面的例子来说,HTML还可以,但JSON部分可能不太行: “''js const editorRte = this.editor.RichTextEditor // ... editorRte.add('fontSize', { 图标:” <select> <option value=“” 已禁用 已选中>Size</option> <option value=“8px”>8 pixels</option> <option value=“12px”>12像素</option> <option value=“16px”>16像素</option>...

artf

@bgrand-ch,你说的“可能”是什么意思?😅

bgrand-ch

@artf感谢你的快速回复🙂,更新到“0.16.30”后我的问题就解决了。 🎉

bgrand-ch

https://github.com/artf/grapesjs/issues/3069 🤔

#32162021年1月5日作者 tomhatzer4 个回答
2 个反应

功能:通过资产管理器添加 referrerPolicy 以加载图片

你想给GrapesJS添加什么? 我正在尝试通过资产管理器为图片加载添加“Referer”头。 详细描述你的功能需求详细 我正在开发一个托管在AWS上的页面构建器。为了防止别人热链接我的图片,我实现了AWS WAF,限制图片加载到referer域(我自己的域名)。 当用“.src”程序加载图像时,没有发送referer头,导致图像损坏或无法显示(服务器出现403个错误)。我们可以通过将“refererPolicy”属性设置为“origin”来解决这个问题。更多详情请见此处:https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/referrerPolicy...

artf

正如对PR的回复,如果需要,可以扩展图像组件来实现,而不会破坏对他人的集成。 顺便说一句,当你想添加某个功能时,你应该始终考虑这对他人的使用方式。所以,如果“referrerPolicy”功能提供了更多选项,那么让它可自定义可能更合理,这样新功能也能适用于其他情况(你不能只强制它“origin”,因为它适合你的情况)。

tomhatzer

非常感谢你的建议@artf——我会尝试通过扩展原始组件来完成这件事。祝你有美好的一天!😃

tomhatzer

对于所有遇到iframe无法发送里面内容引用头的人,这里有一个快速且粗略的解决方案。 只需将Canvas iFrame的“src”设置为你想要的域名,并用这个引用器。就我而言,我希望和编辑器显示的网页用的是相同的域名。 在渲染时,'srcDoc' 属性会引路,然后是 'src' 属性。 请注意,在Canvas iFrame加载后设置可能会导致错误,所以可以尝试操作Canvas视图的属性(据我所知,这不直接实现)。

#32152021年1月4日作者 san-1232 个回答
0 个反应

来自远程数据库的内容加载问题

你好, 我创建了Grapejs页面构建器。我有两个链接,一个是 pagebuilder1,另一个是 PAgeBuilder2。两者都被重定向到grpaejs编辑器,并根据ID从数据库加载内容。 当我点击PageBuilder1时,会变成index.html?id=1(从数据库加载已保存内容) 当我点击PageBuilder2时,会显示index.html?id=2(从数据库加载已保存内容) 我的问题是所有页面构建器都加载了同样的内容。 我的代码: Grapesjs.init({ 展示偏移集:1, noticeOnUnload: 0, 容器:“#gjs”, 身高:“100%”, fromElement: true, storageM...

artf

请按照本指南 https://grapesjs.com/docs/modules/Storage.html#setup-remote-storage

ClaudeCode

感谢你报告,@san-123。 关于远程数据库内容加载问题的建议很棒!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:*”事件进行细致跟踪 构...

#32142021年1月1日作者 Abhisheknanda13444632 个回答
0 个反应

Ckeditor 启用头部类型

你好@artf 我在 grapesjs 里加了 CKEditor,运行正常,但问题是头块上 CKEditor 没有显示 我尝试添加格式标签 但没成功。 你能帮帮我吗 谢谢

artf

请确认/确认这是否与GrapesJS相关,而不是CKEditor,因为这可能是预期行为(也可能违反HTML5规范,因为我看不出有必要设置可编辑内容的标题......)

ClaudeCode

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

#32132020年12月30日作者 theSC0RP4 个回答
5 个反应

如何保存动态添加的特性

你好,@artf,我有一个自定义组件,带有按钮特性。当按下按钮时,我会用“comp.addTrait()”动态添加自定义特质。 当我加载已保存的模板时,我希望容器也能显示动态添加的特征。(我用组件加载模板,但动态添加的特征没有显示出来。)我可能哪里做错了?

artf

我通过在组件上加一个计数属性,然后在容器的初始化中添加特征计数时间来实现。 这才是正确的方法。 特征会被故意跳过 JSON,否则你会暂停存储中的组件定义(例如,当你用新特征升级组件时,用户仍会看到旧的特征)

theSC0RP

@artf,谢谢你的回复。这是一条非常宝贵的信息。

theSC0RP

我通过在组件上加一个计数属性,然后在容器的初始化中添加特征计数时间来实现。

#32122020年12月30日作者 Abhisheknanda13444632 个回答
0 个反应

Lightbox 组件

你好@artf 我正在尝试制作一个组件光箱,和Grape Drop一样。 我无法更新图片的原始字符 你能帮我一下吗 这是我目前写的代码 灯箱块 组件- :

artf

请检查[图像组件](https://github.com/artf/grapesjs/blob/dev/src/dom_components/view/ComponentImageView.js)

ClaudeCode

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

#32112020年12月29日作者 alemenciones2 个回答
3 个反应

如何移动组件

亲爱的,你好: 我想用程序方式把一个组件移动到封装器的首尾,我记得像editor.getWrapper().add(editor.selectedComponent(), {at: 0});,但这是从selectComponent添加一个新的克隆, 也许在位置设置触发器“排序器:拖动:结束”? 你能帮我吗? 抱歉我的英语不好 :')

artf

可能有必要添加一个新的“component.move(desComponent, opts)”方法来应对这种情况,但目前你可以用以下方式实现: “''js const selected = editor.getSelected(); select.remove({ temporary: true });临时选项可以避免移除与组件相关的样式 editor.getWrapper().append(selected, { at: 0 }); ```

ClaudeCode

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

#32092020年12月24日作者 TouficNouwayhedd2 个回答
1 个反应

在预览模式下,工具栏只是隐藏,但仍可点击

版本: 0.16.22 你能重现演示中的bug吗? 是的 预期的行为是什么? 当用户按下预览按钮时,图标工具栏不可点击。 详细描述那个漏洞 当用户点击预览(即使是在演示网站)时,如果你在点击预览前将鼠标悬停在选中的组件上,你会发现可以再次点击工具栏。 为了解决我项目中当前的问题,我必须在预览运行时隐藏工具栏的div(“gjs-toolbar”),退出预览时再显示一次。 目前的行为是什么? 在预览模式下,将鼠标悬停在选中的组件上,仍然有可点击的元素。 你能附上截图、截屏或实时演示吗?** 是的。请查看附带的mp4 https://user-images.githubusercontent.com/66264061/103091217...

artf

修复已准备好下一次发布

ClaudeCode

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

浏览所有主题