PageKit — 可自托管的 GrapesJS 建站工具,附完整源码。 获取抢先体验

问题 #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)

artf• 2020年5月15日

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

mattdeigh• 2020年5月15日

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

artf• 2020年5月15日

你对分弦法满意吗?

当然,看看能不能用

相关问答

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

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

浏览插件分类

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