fabric.js canvas监听键盘事件?

Whi*_*ger 11 keyboard-events fabricjs

在我的结构应用程序中,我正在侦听某些按键,例如删除键,并删除任何选定的元素.我按键按键的方法是:

document.onkeydown = function(e) {
  if (46 === e.keyCode) {
  // 46 is Delete key
  // do stuff to delete selected elements
}
Run Code Online (Sandbox Code Playgroud)

我遇到了一个问题:我有其他元素,如页面上的文本框,当在文本框中键入时,我不希望删除键删除任何元素.

这个问题中,有一个描述将事件监听器附加到HTML5画布的方法:

canvas.tabIndex = 1000;
Run Code Online (Sandbox Code Playgroud)

允许您使用canvas.addEventListener键盘事件.

我可以用布料的画布使用类似的东西吗?

我这样试试的时候,

var CANVAS = new fabric.Canvas('elemID', {selection: false})
CANVAS.tabIndex = 1000;
CANVAS.addEventListener("keydown", myfunc, false);
Run Code Online (Sandbox Code Playgroud)

我从Chrome获得"Uncaught TypeError:undefined is not function".

Whi*_*ger 16

这就是我最终要做的事情:我在Fabric使用的画布周围有一个包装器div,我已经将事件监听器添加到这个包装器中.

var canvasWrapper = document.getElementById('canvasWrap');
canvasWrapper.tabIndex = 1000;
canvasWrapper.addEventListener("keydown", myfunc, false);
Run Code Online (Sandbox Code Playgroud)

这与我想要的完全一样.delete发生在文本框内的印刷机不会被收听者拾取.