首页 > 解决方案 > 重新加载后如何让Edge识别键盘事件?

问题描述

在我的网页中,我为不同的键(如左箭头等)设置了一些 keydown 处理程序。

当我将我的网址输入到 Edge 上的位置字段时,它们就会起作用,也可以在 FireFox 和 Chrome 上使用。

但是,如果我单击 Edge 上的 Refresh/reload 按钮,keydown 处理程序将停止响应,直到我单击窗口。FireFox 和 Chrome 没有这个问题。

所以我认为问题可能是刷新失去了主浏览器窗口的焦点,因此 Edge 在重新加载后可能没有得到按键。

所以我尝试了我的 onload -handler 设置

 document.body.focus();

但这并不能解决问题。单击重新加载/刷新按钮后,有没有办法让 Edge 识别按键?

有没有一种方法可以通过我的 onload 处理程序以编程方式在主窗口中引发 onclick 事件?这可能会解决问题,谁知道呢。

这是我在 onload-handler 中尝试的一些代码,试图将焦点移到主窗口,但它只是不计算:

window.focus();
setTimeout
( () =>
  { // window.focus()
    document.body.focus()
  }
, 222
);

我尝试了几件事,比如将焦点放在窗口、文档和正文上。并使用超时而不是。我可以通过使用调试器验证 onload -handler 中的上述代码在单击刷新时确实被执行。它似乎没有任何效果,直到我单击主窗口。

标签: javascriptmicrosoft-edge

解决方案


推荐阅读