GrapesJS 问题

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

找到 203 个问题

🔍 enhancement
#33072021年3月3日作者 neon123454 个回答
3 个反应

成就:提供一个未被压缩的版本

有没有被压缩的 Grapesjs 单文件版本? 如果能有个专门的,方便修复漏洞和快速测试新功能/改进,那就太好了。

neon12345

令人失望的是,这个网站刚刚关闭了。当然我可以改变工作流程,但为什么不让大家参与得尽可能舒适呢?

stljeff1

有人能详细解释一下怎么用源地图吗?我在升级到最新的Grapes版本时遇到了非常困难,需要任何能帮忙调试的帮助。 我正在将 grapesjs 导入到 Angular/Typescript 应用中。如果我不包含压缩文件本身,我不明白怎么利用源地图。

Ju99ernaut

这个已经有了,只要用“grapesjs.js”代替“grapesjs.min.js”

#32922021年2月26日作者 sudiptochoudhury3 个回答
1 个反应

每个组件在保存前有没有一个事件,组件可以监听?

非常感谢你提供这个图书馆。 背景:我正在构建一个编辑器,打算从我之前开发并在应用中使用的现有Vuejs组件中定义大部分组件。这些大多是基于界面的简单和复杂组件。例如,我有简单的 vuejs 组件,分别叫 su-form、su-field、su-label、su-input、su-radios、su-buttons、su-validations,以及使用简单组件如 su-login-form、su-registration-form 等的复杂 vuejs 组件。正如你可能猜到的,su-form、su-field 以及其他类似组件都有插槽,我会添加其他组件,以创建一个具有业务用例的实用组件。例如,我会在 su-form 的插槽中插入...

Ju99ernaut

我不确定每个组件是否都有这样的钩子,但你可以尝试利用组件的“toHtml”属性。这个问题已经在别处讨论过了,所以你可以在期刊中搜索,因为有不少。

artf

是的,你可以用自定义的“toHTML”/“toJSON”函数(模型中)来定义组件,以便自定义它们的输出

ClaudeCode

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

#32802021年2月19日作者 bgrand-ch1 个回答
0 个反应

特色:无渲染

你想给GrapesJS添加什么? 我尝试为GrapesJS做样式并调整其元素(面板、按钮、画布等),覆盖所有样式元素真的很烦人。 描述你的功能请求 一个无渲染的GrapesJS。将特定的 GrapesJS 元素(面板、按钮、画布等)附加到文档中的任意容器中。为独立的类和子类添加样式(.gjs、.gjs-panels、.gjs-panel-{name}、.gjs-buttons、.gjs-button-{name} 等)。使用这些功能的指南(如果已有的话),仅为样式和定位指南。 最新版本有替代方案吗? [ ] 是的(描述另一种情况) [X] 不 这是否与某个问题有关? [ ] 是的(请提供本期链接) [X] 不

ClaudeCode

谢谢你举报,@bgrand-ch。 关于FEAT:无渲染的好建议!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:*”事件进行细致跟踪 构建一...

#32772021年2月18日作者 FrancoFasano2 个回答
1 个反应

默认PDF大小:美国字母 如何设置A4?

警告 请阅读并遵循接下来的三步,然后在发布问题前删除它们JSFiddle 入门模板 https://jsfiddle.net/szLp8h4nCodeSandbox 入门模板 https://codesandbox.io/s/1r0w2pk1vl *版本:0.16.3 你可以在控制台输入“grapesjs.version”获得版本 你能重现演示中的bug吗? [X] 是的 [ ] 不 预期的行为是什么? 一个设置或文档,帮助开发定义PDF大小 详细描述那个漏洞 这其实不算是bug,而是设置问题。 我无法将PDF尺寸改成A4,代码中找不到允许从A4开始的参数或配置 目前的行为是什么? 我用 grapesjs 在 invoicenin...

artf

你好,Franco,你可以通过更改[devices](https://grapesjs.com/docs/api/device_manager.html)来定义帧大小。

ClaudeCode

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

#32692021年2月12日作者 acondura4 个回答
0 个反应

翻译HTML字符串

图书馆很棒!它满足所有要求,唯独有一个:网站文本翻译。 我在议题队列和文档中翻遍了各种地方,但不知为何找不到关于这个话题的任何信息。我的客户不在乎 grapesjs 编辑器是英文的。他们想要的是能够轻松地将文本翻译成网站的任意语言。 如果首页页头写着“欢迎访问我的网站”,他们会希望有一个简单的选项:将鼠标悬停在该文本,点击下拉菜单,然后点击翻译,可能会弹出弹窗,将该行翻译成法语或其他他们想用的网站语言。当然,访客还需要一个语言下拉选择器。 有类似的吗?如果不行,这种插件的粗略结构应该是什么?

artf

这需要你自己去做。也许可以自定义文本组件,这样可以根据所选语言更改内容。

jordandevogelaere

@acondura你有解决办法吗?我对我的客户也有同样的要求。 谢谢

gxanshu

我也有同样的要求。是的,我们唯一能实现这一点的方法就是创建自己的组件

#32682021年2月12日作者 theSC0RP4 个回答
0 个反应

如何在HTML中添加JavaScript而不进行净化?

@artf,我正在接收用户的JavaScript输入。我需要在模板HTML里添加这个JavaScript,但它会被净化。 有没有办法关闭消毒功能?(我对你提到的#3245问题没有意见)或者你能在编辑器里添加类似“allowSanitization: false”这样的属性吗? 如果不行,那我该如何把JavaScript添加到画布上?

theSC0RP

我尝试在画布渲染的iframe中添加脚本,在<script>iframe正体末尾加了“'标签。这在某种程度上是可行的。问题是,当我需要更新脚本中的 js 时,我需要刷新 iframe(如果有事件监听器就移除),这样做会出现以下错误: ![截图来自2021-02-18 10-54-24](https://user-images.githubusercontent.com/30771519/108309560-beec5a00-71d7-11eb-9bfe-e7a48c5e6f...

artf

你能提供一个可复现的演示吗?

theSC0RP

谢谢你的回复@artf。 我更新iframe时出错了,现在问题解决了! 再问一下,有没有内置的方法可以刷新iframe?

#32672021年2月11日作者 mosh-tudor4 个回答
1 个反应

无法设置0像素盒子的阴影模糊

不知为何,编辑器不允许将模糊设置为0像素。 0总是神奇地变成5px。 <img width=“243” alt=“截图 2021-02-11 17 14 05” src=“https://user-images.githubusercontent.com/668451/107664461-ba321e00-6c8c-11eb-91ce-4e8a87a2e33c.png”> 你能重现演示中的bug吗? 是的 你可以在这里找到这个bug: https://grapesjs.com/demo.html

artf

这个应该已经修好了

artf

谢谢,我猜'0'有个假检查,导致默认的5px值。

akankshach29

想帮忙修复这个bug。我会刷新个人纪录。

#32452021年1月21日作者 bgrand-ch3 个回答
0 个反应

Grapesjs-custom-code 无法<script>从 GrapesJS 0.16.30 及以上版本执行

'grapesjs-custom-code' 在 'script' 标签下运行良好,直到 GrapesJS 0.16.27 版本后,不再执行任何“script”内容。 ✔️ 编辑器初始化() 选项 : 'allowScripts: 1' ✔️ 插件导入:https://github.com/artf/grapesjs-custom-code/issues/11#issuecomment-724512902 这和 https://github.com/artf/grapesjs/issues/3244 有关吗?

nithinpillalamarri123

你好,非常感谢你,重播...... 是的,完全正确,重放后我尝试了0.16.27自定义方块脚本,但比0.16.27版本更稳定,拖放自定义方块脚本正常运行,保存并重新加载模板后用 editor.setComponents(html 文本为字符串);HTML运行正常,但脚本无法使用。 我用脚本吸收了这个,代替了“这种符号被浏览器理解代码取代的”< >,所以我尝试在浏览器中部署那个 HTML,运行正常,但脚本在本地加载已存模板时无法工作。 如果有人有最新版本的解决方案,请帮我脱离...

artf

你好,@bgrand-ch,你说的可能是一个修复的bug。 😂 不应该让用户执行随机脚本的主要原因:自XSS如果在编辑器中执行脚本,我们无法控制,例如,用户将 '<script>document.body.innerHTML = “”</script>;编辑也坏了。 实际上,有一个选项表明这是设计中的 'placeholderScript |内容显示自定义<script>代码包含

ClaudeCode

谢谢你举报,@bgrand-ch。 关于grapesjs-custom-code无法<script>从GrapesJS 0.16.30及以上版本执行的建议很棒!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“se...

#32312021年1月13日作者 vatte214 个回答
2 个反应

如何更改 GJS-CKEDITOR-Format 组件

大家好, 我们都知道 GJS-CKeditor-plugin 是处理 [data-gjs-type]=“text” 组件的。 我想知道,我们能不能改变这个选项? 我想自己创建一个自定义组件,比如 [data-gjs-type]=“anyDiv”,并且拥有类似的功能 [data-gjs-type]=“text”。也许有人知道怎么改变? 也许我可以在 CKeditor 配置里改一下?例如,当我们初始化CKeditor时: 选项:{ !!!!!例如: 格式:'text',想添加('anyDiv'), 语言:“恩”, startupFocus:确实如此, extraAllowedContent: '();{}', // 允许任意类和任意内...

Abhisheknanda1344463

@vatte21 让你的组件可以编辑。你必须这样扩展组件中的文本类型 “''js 编辑。Components.addType('anyDiv', { 型号:{ 默认值:{ 类型:“文本”, 特质:[ ...编辑。Components.getType(type.id).model.prototype.defaults.traits, ...[] ] }, reRender() { this.view.render(); }, }, 扩展:“文本”, isComponent:...

vatte21

@Abhisheknanda1344463 谢谢!我会试试

abulka

@Abhisheknanda1344463你的代码片段给我提示错误“Uncaught ReferenceError: type is not defined” “类型”在哪里定义?

#32232021年1月7日作者 ianef3 个回答
2 个反应

专长:从一个URL创建画布

我一直在玩 GrapesJS,并尝试把它集成到 Symfony 5 的项目中。特别是,我希望能够在编辑器中编辑基于Bootstrap 4和其他组件(如FontAwesome Pro)的模板,以及基于这些的自定义块。 我用Symfony的Webpack-Encore捆绑包来生成应用程序的脚本和样式文件,这让当前的iframe画布系统用同样的版本化组件(如Bootstrap等)工作非常头疼。 目前我只能通过初始化配置向画布注入样式和脚本URL,比如这样: 问题是我想保留与主应用中包含组件版本完全相同的版本。如果我升级这些,我希望它能反映在画布使用的组件中,这可能还包括自定义代码和样式。 在 SymFony 和其他主要框架中,链接根资源...

ianef

真是太遗憾了。我没说要从其他网站取用,我想做的是保持和项目其他部分的一致性。 算了,我还是继续找别的地方,找一个能更好地整合当前大型应用构建方式的编辑器。Webpack 和其他转译器确实是大型项目的领先选择,即使是小项目也有好处。

artf

嗨 Ian,如果你需要从 URL 加载 HTML 内容,我只能建议在服务器端获取并用该内容初始化编辑器(在浏览器中加载外部资源通常会遇到跨源问题),所以就浏览器的工作原理来说,我看不出添加这种功能的合理性。

ClaudeCode

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

浏览所有主题