Javascript 将键盘事件添加到Openlayers映射
我无法将自定义键盘事件添加到Openlayers,也无法找出原因。与Openlayers中已经存在的键盘事件相关,这可能是一个bug吗 我尝试了以下方法,但没有结果: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
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();