0

我有一个页面,我使用 ArcGIS API for Javascript 从 arcgis.com 加载三张地图。所有这些都加载在隐藏的 div 中。

当我在地图中单击以显示信息窗口时,在使地图可见后,它会显示信息窗口已移位。但是,如果我打开 Chrome 的开发人员工具或调整浏览器的大小,信息窗口会显示在它的位置。似乎有一个调整大小的事件。

我试过使用

dojo.byId("map").resize()

显示地图后,但说

TypeError: Object #<HTMLDivElement> has no method 'resize'

如何在不调整浏览器大小的情况下模拟全局调整大小事件?

4

1 回答 1

1

好吧, resize() 不是 html DOM 特定的方法,这与地图对象有关。尝试使用地图对象调整大小和重新定位。

试试这个(AMD 样本):-

    require([
      "esri/map", "dojo/_base/connect", "dijit/registry", ... 
    ], function(Map, connect, registry, ... ) {
      var map = new Map( ... );
      var resizeTimer;
      connect.connect(map, 'onLoad', function(theMap) {
        connect.connect(registry.byId('map'), 'resize', function() {
          //resize the map if the div is resized
          clearTimeout(resizeTimer);
          resizeTimer = setTimeout( function() {
            map.resize();
            map.reposition();
          }, 500);
        });
      });
      ...
    });
于 2013-08-29T12:08:53.190 回答