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

Javascript cannot capture ESC keyup event in Vivaldi browser

我正在开发一个 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'); 
        }
}