Javascript GeoExt MapPanel完全加载后,请正确移除加载掩码

Javascript GeoExt MapPanel完全加载后,请正确移除加载掩码,javascript,extjs,openlayers,dom-events,Javascript,Extjs,Openlayers,Dom Events,我想有一个遮罩在整个页面上,它不会被删除,直到整个页面完全加载。更具体地说,我有一个用OpenLayers和GeoExt创建的地图,我正在尝试使用ExtJS加载掩码。然而,除了使用我不想使用的手动设置超时,我还找不到任何其他方法来实现这一点。我更希望只有在页面完全加载的情况下才能删除掩码。我已尝试在openLayers映射以及windows.onload等上使用“loadend”事件: 我的地图和加载掩码配置: var mask = new Ext.LoadMask(Ext.getBody(),

我想有一个遮罩在整个页面上,它不会被删除,直到整个页面完全加载。更具体地说,我有一个用OpenLayers和GeoExt创建的地图,我正在尝试使用ExtJS加载掩码。然而,除了使用我不想使用的手动设置超时,我还找不到任何其他方法来实现这一点。我更希望只有在页面完全加载的情况下才能删除掩码。我已尝试在openLayers映射以及windows.onload等上使用“loadend”事件:

我的地图和加载掩码配置:

var mask = new Ext.LoadMask(Ext.getBody(), {msg:"Please wait..."});
    mask.show();

    Ext.onReady(function() {
        var options = {
                controls: [new OpenLayers.Control.Navigation()], 
                maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),
                units: 'm',
                allOverlays: false 
        }

        var map = new OpenLayers.Map(options);

        map.events.register("loadend", map , function() {
            mask.hide(); alert('howdy');
        });

var mapPanel = new GeoExt.MapPanel({
            title: "Map",
            map: map,
            id: 'mapPanel',
            layerStore: map.layers,
            //Set the map to be centered at specified      longitude/latitude, transform our layers (SRID=4326) to display properly on Google
            //base layers (SRID=900913)  
            center: new OpenLayers.LonLat(95.20, 30.34).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")),
            zoom: 7, 
            region: "center",
            tbar: [measureLength, '-', measureArea, '-'],
            bbar: [
            {
                xtype: "label",
                text: "Scale = 1 : "                        
            }

            ],
            items: [{
                xtype: "gx_zoomslider",
                vertical: true,
                height: 300,
                aggressive: true,
                x: 10,
                y: 20,
                plugins: new GeoExt.ZoomSliderTip()
            }]
        });
似乎这件事从来没有发生过,因为我从来没有收到过警告信息。我真的很想让它发挥作用,其他尝试包括:

window.onload = mask.hide();

在Ext.onReady之后和标记的末尾,但是在完成地图加载之前,掩码是隐藏的。如果有人能分享一些见解,我将不胜感激

在如下项目之后添加事件“onMapReady”:

onMapReady: function() {
    Ext.getBody().unmask();
}

在项目后面添加事件“onMapReady”,如下所示:

onMapReady: function() {
    Ext.getBody().unmask();
}

到目前为止,我一直使用LoadingPanel解决方案。这显示了每次我放大和缩小地图图层时的加载蒙版,这实际上非常好。我仍然很想知道解决这个问题的其他方法。到目前为止,我已经使用了LoadingPanel解决方案。这显示了每次我放大和缩小地图图层时的加载蒙版,这实际上非常好。我仍然很想知道解决这个问题的其他方法。