我在顶部添加了一个 WebGL canvas,键盘输入功能正常,但我遇到了一个问题:当 canvas 获得焦点时,Discourse 仍然会触发键盘快捷键。
能否禁用所有快捷键?或者,是否有我可以从 JavaScript 调用的方法来正确管理焦点?
我在顶部添加了一个 WebGL canvas,键盘输入功能正常,但我遇到了一个问题:当 canvas 获得焦点时,Discourse 仍然会触发键盘快捷键。
能否禁用所有快捷键?或者,是否有我可以从 JavaScript 调用的方法来正确管理焦点?
我找到了一个解决方案:
const KeyboardShortcuts = require("discourse/lib/keyboard-shortcuts").default;
const Mousetrap = require("mousetrap").default;
var shortcutsContainer;
function EnableShortcuts()
{
if(shortcutsContainer == null)
return;
KeyboardShortcuts.init(Mousetrap, shortcutsContainer);
KeyboardShortcuts.bindEvents();
}
function DisableShortcuts()
{
if(KeyboardShortcuts != null)
shortcutsContainer = KeyboardShortcuts.container;
KeyboardShortcuts.teardown();
}