在我的结构应用程序中,我正在侦听某些按键,例如删除键,并删除任何选定的元素。我按键按键的方法是:
document.onkeydown = function(e) {
if (46 === e.keyCode) {
// 46 is Delete key
// do stuff to delete selected elements
}
我遇到了一个问题:我在页面上有其他元素,如文本框,在文本框中输入时,我不希望删除键删除任何元素。
在this question中,有一个描述将事件监听器附加到HTML5画布的方法:
canvas.tabIndex = 1000;
允许您对键盘事件使用canvas.addEventListener
。
我可以在面料帆布上使用类似的东西吗?
当我这样尝试时,
var CANVAS = new fabric.Canvas('elemID', {selection: false})
CANVAS.tabIndex = 1000;
CANVAS.addEventListener("keydown", myfunc, false);
我得到" Uncaught TypeError:undefined不是函数"来自Chrome。
答案 0 :(得分:16)
这就是我最终做的事情:我在Fabric使用的画布周围有一个包装器div,我已经将事件监听器添加到这个包装器中。
var canvasWrapper = document.getElementById('canvasWrap');
canvasWrapper.tabIndex = 1000;
canvasWrapper.addEventListener("keydown", myfunc, false);
这与我想要的完全一样。 delete 按下发生在文本框内的内容并不被听众接收。