问题 #2758💬 已回答提出于 2020年5月7日作者 mattdeigh0 个反应

Keymaster 无法解绑按键。

快速解答作者 artf

我在想Keymaster里的unbind命令是不是本来是用来处理单个键,而不是在退格键的情况下处理多个键,但复制/粘贴/撤销/重做功能是正常的。 嗯,它和其他键位映射兼容,所以我觉得它能处理这个选项,但我完全不明白“退格,删除”有什么问题(用“删除,退格”时甚至会触发错误???)看起来一个简单的解决方案是在这里拆分keymap.key字符串,然后逐个解绑键 同意,但你说的“我给方向键添加了自定义键映射”的情况呢?它和分体系统一起用吗?PR非常受欢迎:)我也注意到Keymaster有一段时间没更新了,可能值得换个 是的,我也注意到了,但这可能需要花点功夫。你已经知道有什么好的替代品了吗?

阅读下方完整回答 ↓

问题

这在运行“0.16.12”''的[demo site](https://grapesjs.com/demo.html)上可以复现。

在控制台里,运行“''编辑器”。Keymaps.removeAll()'' 并尝试删除一个组件。它确实会删除组件,但我认为不应该删除。看起来其他键映射的解绑都正常。

我不确定这是Grapesjs还是Keymaster的问题。我在给方向键添加自定义键位映射时注意到这个问题,发现调用“editor.destroy()”''时没有被清理干净。

我注意到可以这样解绑删除命令:

编辑。Keymaps.keymaster.unbind('backspace');
编辑。Keymaps.keymaster.unbind('delete');

我在想Keymaster里的unbind命令是不是本来是要处理单个键,而不是在退格键的情况下处理多个键,但复制/粘贴/撤销/重做功能是正常的。

看起来一个简单的解决方案是拆分 [这里](https://github.com/artf/grapesjs/blob/dev/src/keymaps/index.js#L202)的 “keymap.keys”“字符串,然后逐个解绑键。另外注意到Keymaster有一段时间没更新了,可能值得换个。愿意为此开设永久居民。

回答(3)

artf2020年5月15日

我在想Keymaster里的unbind命令是不是本来是用来处理单个键,而不是在退格键的情况下处理多个键,但复制/粘贴/撤销/重做功能是正常的。 嗯,它和其他键位映射兼容,所以我觉得它能处理这个选项,但我完全不明白“退格,删除”有什么问题(用“删除,退格”时甚至会触发错误???)看起来一个简单的解决方案是在这里拆分keymap.key字符串,然后逐个解绑键 同意,但你说的“我给方向键添加了自定义键映射”的情况呢?它和分体系统一起用吗?PR非常受欢迎:)我也注意到Keymaster有一段时间没更新了,可能值得换个 是的,我也注意到了,但这可能需要花点功夫。你已经知道有什么好的替代品了吗?

mattdeigh2020年5月15日

天哪......我查过Keymaster,发现[解除绑定函数处理多个按键](https://github.com/madrobby/keymaster/blob/master/keymaster.js#L172),所以问题肯定出在别处。我看的时候没发现有什么特别的。当我尝试解绑密钥时,没有出现任何错误。 我在单页应用中使用 GrapesJS,所以我需要销毁 GrapesJS 并重新启动,否则浏览器不会重新加载。我最初就是这样发现这个bug的。当你摧毁、重启并使用删除键或退格键时,回调会调用原始编辑器对象,而不是新的,这会触发错误。 我在调用“editor.destroy()”之前运行这个,似...

artf2020年5月15日

你对分弦法满意吗?

当然,看看能不能用

相关问答

通过相似的问题讨论继续研究。

问题 #5346

删除组件而不删除其对应样式

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 最新版本的Chrome浏览器 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞? <img width=“1665” alt=“im...

3 个回答更新于 2023年8月30日

问题 #3317

FEAT:增加对自定义RTE API承诺的支持

你想给GrapesJS添加什么? 支持基于承诺的 API 的富文本编辑器。 详细描述你的功能需求详细 CKEditor5 的“Editor.create”和“Editor.destroy”方法返回一个“承诺”,当编辑器完全创建或销毁时才会解决。这会导致销毁编辑器(完成组件编辑)...

3 个回答更新于 2022年2月8日

问题 #6152

通过自定义代码添加的CSS在移除自定义代码组件后依然存在

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 任何 可复制演示链接 https://grapesjs.com/demo 描述一下那个虫子 如何复现这个漏洞?添加带有HTML + CSS的自定义代码组件删除自定义代码组件。 预期的行为是什么?...

4 个回答更新于 2024年10月9日

问题 #5810

不必要的画布风格

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Arc 版本 1.35.0 / Chromium 引擎 123.0可复制演示链接 https://grapesjs.com/demo.html描述一下那个虫子 我的特殊情况: 就我而言,插件和通用样式...

4 个回答更新于 2024年4月17日

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

浏览插件分类

直接跳转到市场上的插件分类页面。