#18762019年3月10日作者 VardanNersesyan2 个回答
大家好, 1)编辑HTML页面后,我可以用这个框架生成PDF文件吗?我该怎么做? 2)我能否制作现成模板,并通过框架供用户编辑?我该怎么做? 谢谢。
artf
编辑HTML页面后,我可以用这个框架生成PDF文件吗?我该怎么做? 没有内置命令可以自动生成PDF,但你可以获取模板的HTML代码并生成PDF。我可以制作现成模板,并通过框架供用户编辑吗?我该怎么做? 当然,我建议你先从[入门](https://grapesjs.com/docs/getting-started.html)开始阅读,然后查看[存储管理器](https://grapesjs.com/docs/modules/Storage.html)
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#18752019年3月10日作者 simplecommerce3 个回答
你好, 我做了一个组件和块,可以在画布里拖拽。 我的问题是有些风格依赖于ID。 我知道这可能不是最理想的,但目前就是这样。 我的问题是,当我在组件属性中用之前的数值重新加载编辑器时,所有的ID都被更改了。 有什么办法可以防止这种情况吗? 比如说,只更改新添加的区块的ID,而不更改导入的代码或已有代码? 我试着搜索,但没看到选项。 谢谢!
simplecommerce
有人知道这个问题的原因吗? 我的问题是比如用引导标签页时,为了让它们正常工作并加载正确的标签页,它会用ID,但因为我重新加载编辑器和组件(用于编辑)时ID会被重新生成,标签页就不再工作了,因为所有ID都被替换和递增了。 初始拖拽。 重新装填 如你所见,我的身份已经改变。
sbiwaichoon
我这里也有同样的问题。如果我在代码中使用了那个ID,我会把When(id-2)reload template改成Grapejs(自动在我的ID上添加“-2”), 如果我在代码的任何部分都不使用那个ID,也没关系,ID不会改变
#18732019年3月9日作者 alialrabi2 个回答
你好,artf, 我有个问题:当我实现包含行和三个单元格的网格组件时,我想让这些单元格在宽度和高度上可重叠,所以我在组件选择时设置一个事件,设置可调整大小=true, 调整细胞高度时可以正常调整,但细胞宽度没有变化,调整大小时,我该如何让细胞可调整大小。 这是我的代码: BlockManager.add('my-grid', { 标签:“Grid”, 分类:“基础”, 内容:'<div title= “grid” class=“row” style=“height:50px; border-width:0px”><div class=“cell”></div><div class=“cell”></div><div class=“...
artf
这是因为网格使用了柔性,所以宽度应该用“弹性基准”来表示。在这种情况下,'resizable'应该是这样的对象 '{ keyWidth: 'flex-basis' }'
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#18722019年3月9日作者 kickbk2 个回答
当文本区域超出某个点时,情况就变得异常。我不太确定怎么描述,所以我附上了屏幕录制。 要重现,进入 https://grapesjs.com/demo-newsletter-editor.html,输入靠近视口底部的文本组件,进入文本末尾,继续点击回车。到了某个阶段,它开始高亮其他组件,表现得很奇怪。 我只是按回车。别无他物。鼠标没有移动。 
artf
CKEditor bug(默认的 RTE 是可以的),很可能与元素在 iframe 中有关(不幸的是,很多文本编辑器因为忽略了这一点而失败)。某个时候它开始突出其他组件,表现得很疯狂。 我只是按回车。别无他物。鼠标没有移动。 只是因为鼠标位置导致组件悬停(其实也不算太夸张😂)
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#18702019年3月8日作者 fmr4112 个回答
当我添加 block(tag i)时,data-gjs 类型是“I”(我创建的特征没有问题)  我有特质  但如果保存并重新加载,data-gjs类型设置为“默认”(特性不起...
artf
你存储/加载错误,请在这里阅读 https://grapesjs.com/docs/modules/Storage.html#store-and-load-templates
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#18692019年3月7日作者 Ramkumar-Murugesan3 个回答
你好, 我想在默认输入特征中添加新字段。 例如: 我需要在已有的输入特征中添加{label: binding, name:binding}  如上图所示。我需要在 name 和占位符之间添加一个新字段。 有人能帮帮我吗? 提前感谢大家
arthuralmeidap
文档里会详细说明你要找什么。 请看这里:https://grapesjs.com/docs/modules/Traits.html#add-traits-to-components
Ramkumar-Murugesan
我是通过使用 而且运行正常
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#18682019年3月7日作者 sakshigarg93 个回答
我已经在图片组件中启用了FA的fa-pencil图标,但我只希望它在特定图片组件中启用,而不是所有组件。我该如何实现这一点? 这是我的代码
arthuralmeidap
你走在正确的道路上。是的,你需要为此创建一个新组件,但你无法覆盖图像组件类型,否则你看到的所有图片都会被覆盖。 这些照片有什么独特之处?你如何区分普通图像和特定图像?这个逻辑你需要加到你的“isComponent”fn里。 提示:可以从现有的Image组件类型扩展你的新组件类型。
sakshigarg9
我试过这个方法,并且从我希望应用该功能的 img 标签中移除了 gjs-data-type=“image”。但它既没有实现这些功能,还会干扰组件的其他属性。
artf
@sakshigarg9为了防止混乱,使用新的 ['addType'](https://grapesjs.com/docs/modules/Components.html#improvement-over-addtype)(你会漏掉 'view' 属性,这会破坏旧声明中的某些内容) 顺便说一句,我建议通过扩展“图片”来创建一个*新组件类型,而不是仅仅扩展当前的图片(这样你就是编辑所有图片)。
#18672019年3月6日作者 arthuralmeidap2 个回答
你好@artf, 我正在尝试创建一个自定义组件并附加一个 JS。举个更好的例子,把这个组件看作幻灯片组件。对于这个组件,我有一些自定义特征,允许用户更改一些预定义的配置。 问题是当我通过“脚本”键连接 J 字时,同时添加块。 我的新自定义组件没有调用“isComponent”方法。 调试代码时,我发现解析组件时会有验证功能,用来检查内容是字符串还是数组。当组件附加 Js 时,内容将是一个对象。 看看PR #1866,告诉我你的看法
artf
问题出现在我通过脚本键附加 J 字时,同时添加块。 我的新自定义组件没有调用isComponent方法。 你好,Arthur,你能举个例子说明你的情况吗?因为我不太明白问题出在哪里。 看了你的PR,我不明白你为什么要解析“content”属性,而这个属性是编辑用来处理静态内容(比如RTE编辑的内容),所以不应该被解析 “''js editor.addComponents({ 类型:“文本”, 内容:“<i>RTE的一些</i><b>静态内容</b>”, }); ```
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#18652019年3月6日作者 Gianglo2 个回答
你好, 我在HTML页面中使用葡萄时发现了以下问题: 当你点击编辑器中的某些元素,比如在标签管理器中移动元素的箭头时,整个页面都会向上移动。 问题也出现在你的JSFiddle入门模板 https://jsfiddle.net/szLp8h4n。 
artf
好的,我们使用 [scrollIntoView](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView) API 来在画布中居中元素(在图层中选择组件时)和图层(在 Canvas 中选择组件时),但似乎这会浮现到主窗口。看了看 https://stackoverflow.com/a/52835382 这个配置似乎解决了问题 “''js const editor = Grapesjs.i...
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#18642019年3月6日作者 simplecommerce3 个回答
你好, 我只是有个小问题,因为我不知道怎么做,或者没找到相关的问题。 我只是想在画布上做任何更改时调用一个函数。 比如,我要添加或移除一个方块。 我正在用样式管理器更改属性。 或者拖放画布中的方块。 甚至更新特质。 有没有一个全局事件可以让它触发我的函数? 我说的不是画布本身的实际变化,而是调用方法编辑器.getHtml()时,应用到最终HTML的改动。 任何帮助或指导都非常感谢,谢谢! 更新: 目前我发现可以用存储管理器来实现这个功能,方法如下: 如果有更简单的解决方案,不用用这种方式,我很乐意听取建议。 谢谢!
a-bashtannik
@simplecommerce,也可以试试这个,可能更适合你 “JavaScript editor.on('change:changesCount', e => { 变身! }); ```
arthuralmeidap
我认为你这样做是最简单的实现方式。
arthuralmeidap
你想在最后达到什么目标? 你可以用类似“editor.on('all', () => //your code here );' 之类的,但这根本不实用。GrapesJS 触发了许多事件,我觉得这可能不适合你的需求。