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