訾懵 发表于 2025-6-8 22:11:22

麒麟系统下firefox浏览器openlayers地图拖拽、双击无效

  依照用户的国产化需求,我们在现有的国产化机器上部署了之前就已经完成的系统。测试发现所有页面的地图拖拽和双击功能不能正常使用。
  解决思路:首先写个简单的demo,只有点击事件。测试结果:依旧无效。问题初步定位,跟ol源代码有关系。进一步分析,拖拽和双击无效 ,说明和点击事件有关。查阅原代码(过程省略,因为找了太久我才发现是这里),点击事件相关内容:
ol.interaction.Pointer.prototype.updateTrackedPointers_ = function(mapBrowserEvent) {
if (this.isPointerDraggingEvent_(mapBrowserEvent)) {
    var event = mapBrowserEvent.pointerEvent;

    if (mapBrowserEvent.type == ol.MapBrowserEvent.EventType.POINTERUP) {
      delete this.trackedPointers_;
    } else if (mapBrowserEvent.type ==
      ol.MapBrowserEvent.EventType.POINTERDOWN) {
      this.trackedPointers_ = event;
    } else if (event.pointerId in this.trackedPointers_) {
      // update only when there was a pointerdown event for this pointer
      this.trackedPointers_ = event;
    }
    this.targetPointers = ol.object.getValues(this.trackedPointers_);
}
};调试发现这里三个if ,我的event一个也不喜欢。所以问题位置找到了,把event强行加给trackedPointers_问题就解决啦。
ol.interaction.Pointer.prototype.updateTrackedPointers_ = function(mapBrowserEvent) {
if (this.isPointerDraggingEvent_(mapBrowserEvent)) {
    var event = mapBrowserEvent.pointerEvent;

    if (mapBrowserEvent.type == ol.MapBrowserEvent.EventType.POINTERUP) {
      delete this.trackedPointers_;
    } else if (mapBrowserEvent.type ==
      ol.MapBrowserEvent.EventType.POINTERDOWN) {
      this.trackedPointers_ = event;
    } else if (event.pointerId in this.trackedPointers_) {
      // update only when there was a pointerdown event for this pointer
      this.trackedPointers_ = event;
    }else{
      //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓兼容华为银河麒麟桌面系统浏览器地图无法拖拽问题↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
      this.trackedPointers_["1"] = event;
}
    this.targetPointers = ol.object.getValues(this.trackedPointers_);
}困扰我这么久的问题居然一句话就能搞定~~

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

讥慰捷 发表于 2025-12-6 10:40:30

感谢分享,下载保存了,貌似很强大

创蟀征 发表于 2025-12-17 04:28:36

谢谢楼主提供!

寨重 发表于 2026-1-19 12:37:17

收藏一下   不知道什么时候能用到

蓝娅萍 发表于 2026-1-19 18:21:05

懂技术并乐意极积无私分享的人越来越少。珍惜

祉遛吾 发表于 2026-1-20 20:14:33

新版吗?好像是停更了吧。

老僻贞 发表于 2026-1-21 12:49:58

这个好,看起来很实用

背竽 发表于 2026-1-22 12:23:12

热心回复!

事确 发表于 2026-1-23 06:10:42

这个好,看起来很实用

笙芝 发表于 2026-1-23 15:23:06

很好很强大我过来先占个楼 待编辑

周冰心 发表于 2026-1-24 11:17:38

懂技术并乐意极积无私分享的人越来越少。珍惜

戈森莉 发表于 2026-1-26 08:50:48

东西不错很实用谢谢分享

裒噎 发表于 2026-1-29 06:53:21

感谢发布原创作品,程序园因你更精彩

靳谷雪 发表于 2026-2-3 06:34:08

分享、互助 让互联网精神温暖你我

阎怀慕 发表于 2026-2-3 08:08:36

前排留名,哈哈哈

志灿隐 发表于 2026-2-6 07:53:33

感谢发布原创作品,程序园因你更精彩

敖可 发表于 2026-2-8 16:32:21

懂技术并乐意极积无私分享的人越来越少。珍惜

麓吆 发表于 2026-2-8 18:41:26

谢谢分享,辛苦了

葛雅隽 发表于 2026-2-9 11:07:59

懂技术并乐意极积无私分享的人越来越少。珍惜

揭荸 发表于 2026-2-9 19:14:55

谢谢楼主提供!
页: [1] 2
查看完整版本: 麒麟系统下firefox浏览器openlayers地图拖拽、双击无效