#33372021年3月12日作者 wfcheng4 个回答
你好,我正在为学生开发一个解决方案,让学生通过Grapejs编辑器(类似Canva)制作幻灯片讲述他们的高中经历,并且已经将编辑器配置为“绝对”模式,效果非常好。 但我似乎找不到用方向键在编辑器里移动掉落方块的方法。 我知道自定义键位绑定,会考虑添加这个功能,但只是想看看我是不是遗漏了什么,有没有其他更好的选择。
artf
不,不幸的是,在这种情况下,自定义键位映射是唯一的解决方案。 你应该直接获取选中的组件并更新它的样式。
michaelhofer
我找到了一个可行的解决方案如下: 命令的添加如下: “moveSelectedElements”方法只需以下操作: 不过,当用方向键移动元素时,画布也会滚动,这是库巴默认的行为。 我们如何防止使用keymap('e.preventDefault()'))的默认传播?这应该是自动发生的,还是有办法配置?
sathudeva7
keymaps.add('ns:my-keymap', '⌘+s, ctrl+s', 'some-gjs-command', { 阻止默认浏览器操作 防止:正确, });
#33362021年3月12日作者 fahad1572 个回答
让文本可编辑需要大量点击,我们能让文本字段在一次点击中可编辑吗?我知道,拖动方块时单击会很烦人,这已经很常见了,但就我的情况来说,我想只编辑单击,如果可能的话请指导一下。
artf
https://github.com/artf/grapesjs/issues/3146#issuecomment-733687439
ClaudeCode
谢谢你举报,@fahad157。 感谢你分享关于单击文本编辑的报告。为了帮助团队调查并优先排序: 请提供: 一个最小可复现的例子(CodeSandbox/JSFiddle) 你的GrapesJS版本号 浏览器和操作系统信息 浏览器控制台的任何错误信息 重现问题的步骤 最有帮助的是什么: 简约代码示例(不是你整个项目) 屏幕录制或截图显示问题 明确区分预期行为与实际行为 你正在使用的GrapesJS配置 有了这些细节,维护者可以更快地识别和优先排序修复。GrapesJS团队对...
#33352021年3月11日作者 zachsnoek3 个回答
我有一个组件使用了“background-url”样式管理器属性: 我想重用样式管理器中显示的这个UI,作为“设置”下显示的背景URL特性:  有没有可能让样式管理器的属性像特质一样表现,并显示在“设置”部分,还是我需要用这个界面创建一个新的特质? 谢谢。
artf
遗憾的是,目前还无法实现,但计划很快添加一个新的UI模块,应该可以重复使用UI元素
ClaudeCode
谢谢你举报,@zachsnoek。 关于用样式管理器属性UI创建特质的好问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something...
#33342021年3月11日作者 KernelDeimos2 个回答
版本: 0.16.44 你能重现演示中的bug吗? [ ] 是的 [x] 不 预期的行为是什么? 真的,其他任何东西都行 详细描述那个漏洞 我当时正试图将脚本加载到画布中。我第一次尝试是“脚本:[]”,然后遇到了这个PR帖子里提到的同步问题:https://github.com/artf/grapesjs/pull/67 我看到@artf的一个例子展示了另一种用一个叫“components”的属性来实现。这样做会导致JavaScript解析器失效。我不是开玩笑;我发了截图来证明。 还有一点有趣的是:控制台里写着“TAG LOAD”的文字来自我试图加载的脚本。所以......成功了吗?尽管页面因语法“无效”而崩溃。 目前的行为是什么...
KernelDeimos
我有一阵子没用内联“<script>''标签了,也忘了HTML解析器的这个限制。关上这个。
ClaudeCode
谢谢你举报,@KernelDeimos。 尝试将脚本加载到Canvas时,可能会破坏JavaScript的问题?? 似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSa...
#33332021年3月11日作者 xinnai4 个回答
你好,我想开发源代码,但无法开始。我开始项目时出现了错误。有人能帮帮我吗?非常感谢!! 
xinnai
@Andrew-Chen-Wang 我觉得这可能是我的开发环境出了问题,所以我用另一台电脑安装并迁移到我的电脑上,至今仍不知道为什么,但现在它运行正常了。希望以后不会再出错,非常感谢!!
Andrew-Chen-Wang
关于源代码开发,请查看:https://github.com/artf/grapesjs#development
xinnai
@Andrew-陈旺,是的,我做了,但总是出现这个错误,我该怎么办?
#33322021年3月11日作者 AmtechInnovarch4 个回答
NPM之后,我们可以看到漏洞的程度是不可接受的。 新增了来自383位贡献者的646个包,并在7.892秒内审核了762个包 发现了724个漏洞(353个低点,23个中等,348个高) 运行“NPM Audit Fix”来修复这些问题,或者使用“NPM Audit”获取详细信息 我正在尝试解决这个问题,至少在本地范围内。这会花很长时间,因为每个指定的软件包都存在漏洞。
AmtechInnovarch
这就是为什么有数十年经验的资深程序员不赞成JS作为后端语言。JavaScript 本来就不是用来做服务器端语言的,这些节点包会制造漏洞,导致服务器被黑。 这是一个严重的安全隐患,开发者应当及时解决,或者在 readme.md 中提供足够的警告,劝阻生产环境使用,但不修复所有漏洞。 有没有办法只使用GrapesJS的客户端层?开发者能否识别出客户端文件?
KernelDeimos
GrapesJS 有服务器端层吗?
KernelDeimos
JavaScript 并不是设计成服务器端语言,这些节点包会制造漏洞,导致服务器被黑。 你是说Javascript是唯一依赖会引入安全漏洞的语言吗?如果 JavaScript 有什么特性让这类漏洞更可能发生,你应该在陈述中明确说明,否则你说的只是主观的胡说八道。
#33312021年3月10日作者 Abhisheknanda13444634 个回答
你好@artf 我按照文档制作了一种新型资产管理公司 这里(https://codepen.io/abhi_punk81/pen/MWbWzaq) 我创建了类似文档里那种的新类型 我如何在放置自定义图标块后打开那个资产管理器 -: 一开始它没问题,但当我放下图片块后,默认情况下就会出现一个 请你指点一下我,我正在尝试为 Icons One 创建一个新的插件 根据之前提到的问题,我用add command(添加命令)来调用图标组件的comnd,卡住了:双击时怎么更新目标-: “''js const cm = 编辑。指挥; cm.add('svg-icon', { run(editor, sender, opts) { const a...
Abhisheknanda1344463
@artf 实现了,并且还能处理大小写不区分 https://user-images.githubusercontent.com/20657737/112457190-82d18980-8d81-11eb-895b-b5c42e849f3a.mov 谢谢!!❤️
Abhisheknanda1344463
嗨@artf不知怎么的我做到了 在组件激活时,我把这个标记为 -: “''js 事件:{ dblclick:“onActive” }, onActive () { 编辑。AssetManager.render(editor.AssetManager.getAll().filter(asset => asset.get('type') == 'svg-icon')); editor.runCommand(“open-assets”, { 目标:This.model, });...
artf
应该和你之前做的类似 “编辑。AssetManager.render(editor.AssetManager.getAll().filter(asset => asset.get('type') == 'svg-icon'));' 所以通过搜索找到资源,然后用渲染更新
#33302021年3月10日作者 RaresVlaiduc1 个回答
又见面了! 当前情况:我开始剪辑在图层管理器中,我最大化了移动容器(箭头图标)的宽度,这样我可以通过点击任意方向拖动元素我在编辑器中快速移动,不小心移动了图层,而不是选择它 我想要的:例如,我想将移动事件的开始提前300毫秒,这样在这300毫秒内只触发选择动作 你知道移动时触发的事件叫什么吗(来自图层管理器)。 谢谢! LE: component:drag:start 是事件
ClaudeCode
谢谢你举报,@RaresVlaiduc。 关于组件启动移动时触发的事件,这个问题很棒。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')...
#33292021年3月10日作者 imouou4 个回答
你好,@artf,这是一个很棒的框架,非常感谢。 我现在用它来创建移动版 BUI 框架的组件,遇到了一个问题,我添加了自定义的特性文本区,我该如何制作这个?当数据发生变化时,它会在输出脚本中触发。 “''js 编辑。TraitManager.addType('textarea', { createInput({ 特质, 组成部分 }) { 这里我们可以决定使用性状中的性质 const el=document.createElement('div'); el.innerHTML = ' <textarea class=“buiv-textarea” name=“${options[0].name}” rows=“${options[...
Ju99ernaut
你需要在“剧本道具”中添加这个特质,你可以在这里阅读更多内容 https://grapesjs.com/docs/modules/Components-js.html#passing-properties-to-scripts
imouou
谢谢@Ju99ernaut,如果是某些内置功能,修改脚本时可以接收参数值,我目前遇到问题:自定义功能“textarea”可以触发DOM等更改,但导出脚本无法接收该参数的值,即使脚本道具设置为“datas”。
Ju99ernaut
你可以尝试强制脚本更新: “''js 编辑。DomComponents.addType('slide', { 型号:{ // ... init() { this.on('change:datas', () => this.trigger('change:script')); }, }, // ... }); ```
#33282021年3月9日作者 D-Rosa994 个回答
你好。 Grapesjs是个很棒的工具。谢谢你。 我想通过输入更新组件的文本值,我该怎么做? 如果用户在输入框中填写类似“茶站,标题应改为该网站 
artf
只要找到组件,然后按你的想法更新它 “''js cont typedByUser = '类型某物...'; const cmp = editor.getWrapper().find('.any-query-selector')[0]; cmp && cmp.components(typedByUser); ```
millord
我也想用类似的 Grapes 应用,但用 React 通过控制输入更新文本组件。有人能帮忙吗?