#35592021年6月22日作者 iabhiyaan3 个回答
你好,@artf, 我想获取所选页面的HTML元素。但使用以下代码时,会返回未定义的状态: “''js editor.on('page:select', page => { page.getMainComponent().view.el.querySelector('section'); 那个页面里有个section标签...... }); ```
artf
你好@iabhiyaan,当“page:select”触发时,画布内的iframe还没有加载,所以你需要等它们加载完后才能访问它的DOM。 “''js editor.on('page:select', page => { const frame = page.getMainFrame(); frame.once('loaded', () => { const rootEl = frame.getComponent().getEl(); console.log(rootEl....
ClaudeCode
谢谢你举报,@iabhiyaan。 感谢你分享关于page.getMainComponent().view在选择页面时显示未定义的报告。为了帮助团队调查并优先排序: 请提供: 一个最小可复现的例子(CodeSandbox/JSFiddle) 你的GrapesJS版本号 浏览器和操作系统信息 浏览器控制台的任何错误信息 重现问题的步骤 最有帮助的是什么: 简约代码示例(不是你整个项目) 屏幕录制或截图显示问题 明确区分预期行为与实际行为 你正在使用的GrapesJS配置 有了...
#35572021年6月22日作者 acip4 个回答
我有一些模板是用v0.14.5生成的。我该如何“升级”到最新版本?它们有附加的职业,我看到最新版本不再给元素添加职业了。 背景:我们使用定制组件,一些默认设置(例如可拖拽、可调整大小等、样式)已经更改。 如果需要更多细节,我可以提供。 感谢你带来的这个精彩项目!
artf
它们有附加的职业,我看到最新版本不再向元素添加职业了。 我不太明白你说的是什么,职业应该像以前一样导入。背景:我们使用定制组件,且一些默认设置(例如可拖拽、可调整大小等、样式)已更改。 如果你的自定义组件依赖于之前的默认属性,你只需要更新组件,但说实话,我甚至不记得任何核心组件有这样的改动。 请让我看看一些模板代码加载不良。
acip
嘿,谢谢你的快速回复。这是v0.14.5生成的模板 https://jsonblob.com/535ae06f-d4f6-11eb-8bc1-415e99da64cb 看起来就是这样 https://ibb.co/Zz8qg2J 我们更改了一些自定义组件的默认属性和样式,并更改了dragMode='absolute'。其中一个问题是旧部件无法移动。 如果需要,我可以提供代码示例。
acip
我已经为现有模板设置了旧版本和新版本: https://grapesjs-templates-upgrade.ciprianamariei.repl.co/0.14.5-old-template.html https://grapesjs-templates-upgrade.ciprianamariei.repl.co/0.16.45-old-template.html ,这样你仍然能在最终 HTML 中获得该属性
ClaudeCode
谢谢你举报,@tannguyen97。 感谢你分享关于当元素属性 tabindex = -1 时,无法用“control + C”复制的报告。为了帮助团队调查并优先排序: 请提供: 一个最小可复现的例子(CodeSandbox/JSFiddle) 你的GrapesJS版本号 浏览器和操作系统信息 浏览器控制台的任何错误信息 重现问题的步骤 最有帮助的是什么:** 简约代码示例(不是你整个项目) 屏幕录制或截图显示问题 明确区分预期行为与实际行为 你正在使用的GrapesJS...
#35462021年6月16日作者 ankx062 个回答
我们想在图像组件中添加一个自定义工具栏,显示在左侧(类似于我们对文本组件的展示)。请告诉我该怎么做。 我们还想为自定义组件添加不同的自定义工具栏。
artf
检查组件API参考中的“toolbar”属性,尝试在问题中搜索相关内容
ClaudeCode
谢谢你举报,@ankx06。 关于我如何添加类似文本的图片组件自定义左侧工具栏,这个问题很棒。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something chang...
#35412021年6月15日作者 deiga3 个回答
你好 👋 喜欢这位编辑! 我们用特征来修改组件拥有的类,但感觉有点不靠谱,因为每个特征选择都必须重新声明所有类名 这里有一个简单的例子: 每个特质选项都必须定义所有职业,否则会移除所有现有职业。 这感觉像是错误的做法,但我们还没能找到其他内置方法来修改组件的类。 正确的做法是什么?
krishnaeverestengineering
@deiga我们正在做类似的事情。
artf
我会把特性附加到某个组件属性上,而不是类属性,根据值我会正确使用 [removeClass](https://grapesjs.com/docs/api/component.html#removeclass)和[addClass](https://grapesjs.com/docs/api/component.html#addclass)
ClaudeCode
谢谢你举报,@deiga。 关于[问题]关于从组件中添加和移除类的惯用方式是什么?推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed'));...
#35292021年6月10日作者 tmrowe1231 个回答
你好, 我对这个很棒的项目还比较新,但我正在尝试在从dropMenu选中组件ID后,更改另一个组件onClick的显示。我在选择 dropMenu 特性后,试图为组件添加 onClick 属性遇到了困难。我似乎无法从 addAttributes() 中访问 dropMenu 特性的值。我也无法使用外部的 addAttributes() 变量,比如 'var comp = document.getElementById(this.get(“traits”).where({name: “dropMenu”})[0].get(“value”)',包括 editor.getSelected()。 提前感谢大家 '编辑。Components...
ClaudeCode
谢谢你举报,@tmrowe123。 感谢你分享关于尝试在组件中添加onClick属性的报告。为了帮助团队调查并优先排序: 请提供: 一个最小可复现的例子(CodeSandbox/JSFiddle) 你的GrapesJS版本号 浏览器和操作系统信息 浏览器控制台的任何错误信息 重现问题的步骤 最有帮助的是什么: 简约代码示例(不是你整个项目) 屏幕录制或截图显示问题 明确区分预期行为与实际行为 你正在使用的GrapesJS配置 有了这些细节,维护者可以更快地识别和优先排序修复...
#35282021年6月10日作者 krishnaeverestengineering2 个回答
不太清楚具体情况,但这就是我得到的。有时测试通过,有时随机失败。请帮帮@artf <img width=“1474” alt=“截图 2021-06-10 晚上7:08 14”,src=“https://user-images.githubusercontent.com/55732888/121535085-71faf080-ca1f-11eb-8e07-aeedf9ab7464.png”>
artf
和这里一样 https://github.com/artf/grapesjs/issues/3476#issuecomment-848074298
ClaudeCode
谢谢你举报,@krishnaeverestengineering。 感谢你分享关于我没能对Grapesjs组件进行单元测试的报告。为了帮助团队调查并优先排序: 请提供: 一个最小可复现的例子(CodeSandbox/JSFiddle) 你的GrapesJS版本号 浏览器和操作系统信息 浏览器控制台的任何错误信息 重现问题的步骤 最有帮助的是什么: 简约代码示例(不是你整个项目) 屏幕录制或截图显示问题 明确区分预期行为与实际行为 你正在使用的GrapesJS配置 有了这些细...
#35242021年6月8日作者 iteniel3 个回答
我刚接触葡萄JS......很棒的工具。我有一些关于特质的问题。 我按照这个教程操作了 https://grapesjs.com/docs/modules/Traits.html#define-new-trait-type 因为我必须覆盖href的生成方式。这个例子对我来说很棒,只需稍作修改。我想替换...... <select multiple=“multiple”> <option value=“option”></option> ....... </select> );onChange 会正确触发 onEvent ```
iteniel
@artf谢谢 你能帮我回答问题的第一部分吗 我需要类似 onPostRender/afterRender 的工具,在 DOM 存在时初始化 select2 组件 createInput 方法之后的某个词
ClaudeCode
谢谢你举报,@iteniel。 关于[问题]:将select2 UI元素集成到特质中的好问题。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something chang...
#35122021年6月2日作者 Palash-Mandal3 个回答
你好,@artf, 我正在尝试开发一个简单的横幅插件,包含标题、副标题和链接。每个元素都可以拖拽、可丢弃、高亮,但基于以下代码,某些部分代码无法正常工作。请帮帮我  只有横幅类 CSS 推送,但还有一个 CSS 部分全部不发布  寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('ch...
#35112021年6月2日作者 moises-flowize2 个回答
警告 请阅读并遵循接下来的三步,然后在发布问题前删除它们遵守贡献指南 https://github.com/artf/grapesjs/blob/master/CONTRIBUTING.md先快速搜索一下,看看有没有人没开同样的问题所有相关陈述/问题都必须填写/回答,否则问题可能已结案JSFiddle 入门模板 https://jsfiddle.net/szLp8h4nCodeSandbox 入门模板 https://codesandbox.io/s/1r0w2pk1vl 版本: 0.16.44 你可以在控制台输入“grapesjs.version”获得版本 你能重现演示中的bug吗?[ ] 是的[X] 不 预期的行为是什么? 使...
artf
感谢@moises-flowize,这个问题将在下一个版本中修复 https://github.com/artf/grapesjs/commit/ac96298add119c4f4e000967ab3332f9ad711613
ClaudeCode
谢谢你报告,@moises-flowize。 Command core:component-enter 在所有情况下都无法正常工作的问题似乎是竞态条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重...