Javascript无法在Vivaldi浏览器中捕获ESC键up事件



我正在开发一个Javascript库(AnyList),其中用户可以按ESC键中止编辑输入字段。这是通过捕捉ESC keyup事件(使用jQuery)来实现的:

inp_elem.on("keyup", init_opt, $.proxy(this._processKeyup,this));
...
$.any.DataView.prototype._processKeyup = function (event)
{
if (event.preventDefault)
event.preventDefault();
if (event.type == "keyup" && event.which == 27) { // ESC. In Vivaldi, we never get here.
...
}
...

这在Firefox, Edge, Chrome等中工作得很好,但在Vivaldi浏览器中不行- _processKeyup方法永远不会被调用。

Vivaldi使用ESC键来停止加载html页面,但其他浏览器也是如此,即使我删除了ESC键盘映射(在Vivaldi中有一个选项),我也无法在Javascript中捕获ESC事件。

有人能帮忙吗?我真的很喜欢Vivaldi浏览器,并希望看到它成功,但这种行为打破了我的脚本不必要的,是相当恼人的。

似乎Vivaldi浏览器正在捕捉keyUp事件,所以您最好使用keyDown事件代替。

一个可行的解决方案可能是这样的:

elem.onkeydown = function (event) {   
if (event.type === "keydown" && event.key === 'Escape') {
alert('esc - everywhere'); 
}
}

最新更新