GrapesJS 问题

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

找到 545 个问题

🔍 typescript
#37702021年9月12日作者 damnslow4 个回答
13 个反应

:改进并修复绝对拖拽模式

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v93 可复制演示链接 https://codepen.io/damnslow/pen/yLXXOxQ 描述一下那个虫子 如何复现这个漏洞?选择两个元素使用拖曳图标拖曳 预期的行为是什么? 两个元素应协同移动 目前的行为是什么? 只有一个元素会移动。 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: 不。行为准则 [X] 我同意遵守本项目的行为准则

artf

目前绝对定位存在多个问题,我想在这里全部回应:[ ] 另一个设备位置错误[ ] 在放大/平移画布上位置错误[ ] 绝对分量子的错误位置[ ] 支持多重选择[ ] 支持触摸设备[ ] 支援'%'单位 我还不确定具体什么时候会开始做,但希望很快,一如既往,任何帮助我都非常感激。

itscarlosrufo

大家好, 非常感谢你的反馈和详细讨论。 我们很高兴地分享,我们已经解决了部分需求功能。此外,我们还推出了一个新的绝对模式插件,应该能覆盖上述大部分使用场景。 你可以在我们的新文档中了解更多: https://app.grapesjs.com/docs-sdk/plugins/canvas/absolute-mode 欢迎试试,如果有其他建议也告诉我们!

fmfeit

你好,@artf, 这个功能对我当前的项目至关重要,所以我有两个问题: 是否可以付钱给你(或其他人)优先使用这个功能? 如果没有,能否说明解决问题所需的步骤,并给我一个起点?

#37632021年9月10日作者 abolabo2 个回答
0 个反应

V0.17.25 。自定义组件定义中的特性按钮。

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Firefox可复制演示链接 https://jsfiddle.net/abolabo/3g7j519h/19/描述一下那个虫子 代码操作错误: 特质:[ { 类型:“按钮”, 文本:“点击我”, 全文:真实, 命令:(编辑器) => console.log(“特征命令”), }, ], 我本以为是<button>标签,但结果显示的是输入类型=按钮。 按钮内没有文字。没有指挥跑。行为准则[X] 我同意遵守本项目的行为准则

artf

感谢@abolabo报告,这个问题其实已经在这里修复了,#3735

ClaudeCode

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

#37352021年8月30日作者 codingmachine164 个回答
3 个反应

选择选项没有显示。 而是作为输入显示

你好,@artf, 我们用“选择选项”作为特质,但这些选项显示为输入。有时显示选项,有时显示为输入。我们的代码如下 defaults: Object.assign({}, defaultModel.prototype.defaults, { 特质:[ { 标签:“类别”, 名称:“noOfCategories”, id:“noOfCategories”, 类型:“选择”, 选项:[ { 编号:“0”, 名称:“无”, }, { 编号:“1”, 名称:“1”, }, { 编号:“2”, 名称:“2”, }, { 编号:“3”, 名称:“3”, }, { 编号:“4”, 名称:“4”, }, { 编号:“5”, 名称:“5”, },...

YumiChen

@artf 补充一下,这两天我们也碰到了这个。这似乎只发生在“0.17.25”版本。以下是Jsfidle的转载,如有需要请查看: https://jsfiddle.net/a29h7twy/5/ 繁殖步骤:将组件拖入画布选择组件并点击设置按钮检查特征选择性状作为输入显示。在开发工具控制台中会显示一些警告

codingmachine16

你好@artf 这个问题依然存在。这什么时候能解决? [特质]: 'select'类型未找到 {level: 'warning'}

codingmachine16

好的。当然。谢谢。供参考,这个问题在2022年0.17.000不存在

#37342021年8月30日作者 anatoli-dp4 个回答
2 个反应

有没有办法在自动保存之外手动触发存档?

正如问题所说,有没有办法通过自动保存以外的命令触发保存功能?不是键值对,而是能瞬间保存整个项目的命令?

csechrist

如果你设置了存储管理器,'editor.store()' 可以保存项目

artf

是的,你必须使用“editor.store()”

anatole-dp

Editor.store()没有参数,只会给我发送空数据。

#37332021年8月30日作者 anatoli-dp2 个回答
0 个反应

(或者只是一般问题)存储管理器加载不正确吗?

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

artf

你是在取材外调用“clb”,在你的加载函数里 “''js Load(keys, clb) { 取(...)。那么(r => r.json()) .then(res => { ... CLB(结果) }) } ```

ClaudeCode

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

#37322021年8月27日作者 aliibrahim1234 个回答
0 个反应

注释组件类型不支持添加特征

我正在开发一个脚本,可以在所有组件类型上添加一个特征,但注释类型没有原型对象。 代码 “''js ddw = 编辑。DomComponents.getTypes(); 对于(设i = 0;i <ddw.length;i++) { DDQ = ddw[i].id; 编辑。DomComponents.addType(ddq, { 模特:剪辑师。DomComponents.getType(ddq).model.extend({ defaults: Object.assign({}, editor.DomComponents.getType(ddq).model.prototype.defaults, { 特质:编辑。DomCompone...

aliibrahim123

@artf

artf

不要用“model.extend”/“view.extend”,那是旧API的一部分。 这就是如何正确扩展所有成分性状的一个例子 “''js const { Components } = 编辑器; Components.getTypes().forEach(({ id, model }) => { Components.addType(id, { 型号:{ 默认值:{ 特质:[ ...model.getDefaults().traits, 'new-trait', ] },...

skru

这是个很棒的解决方案,有没有什么建议可以针对函数中定义特征的组件?根据文档:https://grapesjs.com/docs/modules/Traits.html#add-traits-to-components

#37312021年8月27日作者 gustavohleal4 个回答
1 个反应

文本元素在事件扩展后无法重复选择

版本:0.17.25 你能重现演示中的bug吗?[ ] 是的[x] 不 预期的行为是什么? 通过在视图中添加事件来更新现有的类型文本组件。 详细描述那个漏洞 事件正在添加,但一旦我选择了另一个组件,就无法回到第一个组件。该版本只能提交一次。 你能附上截图、截屏或实时演示吗?**[x] 是(附上)[ ] 不 首先,我想扩展文本类型组件,添加一个事件来监听输入内容。 “JavaScript 导出默认(编辑器,opts = {}) => { const domc = 编辑。主导组件; domc.addType('text', { 浏览量:{ 事件:{ 按键:(e) => { console.log(“某些代码”) } } }, });...

gustavohleal

这其实就是问题所在。谢谢你的回复。我会关闭这期刊物。

ronaldohoch

+1:D 我们正在努力解决这个问题 https://github.com/artf/grapesjs/issues/1136 因为用 ckeditor 还是会出现这个问题。 ![图片](https://user-images.githubusercontent.com/2287371/131171028-4e03e610-2335-4b9a-9f15-081b8c6c33f8.png)

artf

“事件”不会自动合并到扩展组件中,所以你必须手动操作。 “''js 事件:{ ...domc.getType('text').view.prototype.events, 按键:(e) => {...} } ```

#37302021年8月27日作者 hrdkzala4 个回答
0 个反应

脚本标签在HTML页面中无法渲染

我创建了如下的组件。 “''js const script = function() { const script = document.createElement('script'); script.src = 'http://localhost:8888/builder/sites/site1/assets/js/jquery-1.12.4.min.js'; document.body.appendChild(脚本); }); “''js 编辑。BlockManager.add('site1', { 标签:“模板1”, 分类:“模板”, 内容:“<div>这是我的内容</div>。” }); ``` site1 - 是我现成的...

artf

抱歉,我不明白你的问题出在哪里。你创建了“comp-with-js”组件,但却没有显示你在哪里使用它...... 请提供一个可复现的演示。

mingxin-yang

拖动块后脚本功能无法工作 @artf

mingxin-yang

https://grapesjs.com/docs/modules/Components-js.html#basic-scripts

#37172021年8月21日作者 Vikash-ra2 个回答
0 个反应

模板不只加载组件

我正在尝试加载一个已有的模板。我认为它应该能支持组件或 HTML,但似乎只能通过 HTML 运行。 以下代码无法使用,但带有相应HTML的代码可以。 着陆页的 JSON 是从开发者工具栏面板取的 “''js const LandingPage = { “html”:null, “components”: “[{'type':'text','attributes':{'id':'i0fq'},'components':[{'type':'textnode','removable':false,'draggable':false,'highlightable':0,'copyable':false,'selectable':true,...

artf

@Vikash-ra创建问题时请遵循该模板。

ClaudeCode

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

#37142021年8月18日作者 ltenti2 个回答
0 个反应

部分解析

讨论于 https://github.com/artf/grapesjs/discussions/3711 <div type='discussions-op-text'> <sup>最初由 ltenti 于 2021 年 8 月 17 日发布</sup> 大家好, 我想知道如何应对这种情况:我必须允许我的应用用户编辑网页网页上有用户无法编辑的固定部分整个HTML由服务器端的遗留子系统生成,但其中的部分必须由用户自由编辑 我实现了一个自定义组件,可以从服务器获取遗留的 HTML,并用 model.components(data) 语句“注入”到画布中。 我在考虑创建一个新的组件类型(类似doNotEditMe),属性“editab...

artf

https://github.com/artf/grapesjs/discussions/3711#discussioncomment-1234837

ClaudeCode

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

浏览所有主题