Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将键盘事件添加到Openlayers映射_Javascript_Openlayers - Fatal编程技术网

Javascript 将键盘事件添加到Openlayers映射

Javascript 将键盘事件添加到Openlayers映射,javascript,openlayers,Javascript,Openlayers,我无法将自定义键盘事件添加到Openlayers,也无法找出原因。与Openlayers中已经存在的键盘事件相关,这可能是一个bug吗 我尝试了以下方法,但没有结果: this.map.getViewport().addEventListener('keydown', (e) => { console.log(e); }, true) document.getElementById('map').addEventListener('keydown', (e) => { c

我无法将自定义键盘事件添加到Openlayers,也无法找出原因。与Openlayers中已经存在的键盘事件相关,这可能是一个bug吗

我尝试了以下方法,但没有结果:

this.map.getViewport().addEventListener('keydown', (e) => {
  console.log(e);
}, true)


document.getElementById('map').addEventListener('keydown', (e) => {
  console.log(e);
})
聆听相同元素上的单击效果良好:

this.map.getViewport().addEventListener('click', (e) => {
  console.log(e);
}, true)

document.getElementById('map').addEventListener('click', (e) => {
  console.log(e);
})

有什么解决办法吗?

Mike提到的这个问题是因为焦点问题而出现的。
几个月前我遇到了这个问题,所以我搜索了我的旧项目,发现:

<div id="map" tabindex="0"></div>
我想这会有帮助的

另外,几个月前我发现一个答案是。您可以找到有关对焦的更多信息。

如前所述,地图需要对焦。单击地图时,可以使用ol ext的FocusMap交互来聚焦地图

本例使用它在地图上处理ctrl+c/ctrl+v。

与键盘交互,如和,可能存在与哪个元素具有焦点相关的问题。最简单的解决方案可能是使用本例中的文档。谢谢@Mike,不幸的是,在这种情况下,我无法听完整的文档。我在角度上工作,我们在绘制地图的同时渲染形状,所以这会让事情变得棘手。我真的想把它限制在地图本身。我会进一步调查,看看能不能找到解决办法。
document.getElementById('map').focus();