Google maps 使用ajax调用google maps时显示的大小不正确

Google maps 使用ajax调用google maps时显示的大小不正确,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我在一个网站上使用谷歌地图,该网站使用ajax smartAjax插件获取内容。但是,地图被放置在“联系我们”页面上,如果我第一次调用此页面,地图将完整显示,如果我单击“返回”,即我们的概念,然后再次单击“联系我们”,则地图仅显示部分。我已经为此奋斗了好几个星期,在这方面我真的无法得到任何帮助 有没有人可以看看这里,告诉我在使用ajax调用地图后,我可以做些什么使它完整地显示出来 这是: 我将感谢任何帮助 干杯 更新 解决方案由jayarjo发布 google.maps.event.addLi

我在一个网站上使用谷歌地图,该网站使用ajax smartAjax插件获取内容。但是,地图被放置在“联系我们”页面上,如果我第一次调用此页面,地图将完整显示,如果我单击“返回”,即我们的概念,然后再次单击“联系我们”,则地图仅显示部分。我已经为此奋斗了好几个星期,在这方面我真的无法得到任何帮助

有没有人可以看看这里,告诉我在使用ajax调用地图后,我可以做些什么使它完整地显示出来

这是:

我将感谢任何帮助

干杯

更新 解决方案由jayarjo发布

google.maps.event.addListenerOnce(map, 'idle', function() {
    google.maps.event.trigger(map, 'resize');
    map.setCenter(point); // be sure to reset the map center as well
});

这就是使用ajax时必须包含的内容,它工作得非常出色。

正如我在评论中所写,您的javascript代码有几个bug。如果您解决了这些问题,那么这个问题很可能也会得到解决

然而,一个快速的技巧是写以下几行:

google.maps.event.trigger(map, 'resize'); 

在您的代码中的某个地方,在用户更改“联系我们”选项卡之后。

您可以尝试修改地图初始化功能。不要每次单击链接时都初始化映射

var map;
function initialize() {
    var myOptions = {
        center: new google.maps.LatLng(-34.397, 150.644),
        zoom: 8,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map"), myOptions);
} 

您应该使用浏览器上的开发工具,例如,获取firefox的Firebug,或在chrome中按“F12”。你的javascript代码抛出了几个错误——其中一个与谷歌地图坐标有关。这不是黑客行为。这是告诉API地图现在可见并且其大小记录需要更新的唯一方法。我的代码中的某些地方对我来说不够具体,抱歉。有很多代码。你指的是什么代码?谁能告诉我在哪里粘贴这个代码。我试过几个地方,但没有成功。不,不幸的是,一切都一样。总是只显示地图的一部分,从上面的另一个解决方案中,我不知道将代码片段粘贴到哪里。将谷歌地图与ajax结合使用真的很难吗。我觉得整个世界都在这么做……你的代码中有一个初始化函数。那不是你写的吗?不管怎样,谷歌地图在Ajax上运行得非常好。我说我不知道在哪里粘贴它时,我并不是在谈论你的解决方案。我从奥利弗那里得到了解决办法。我试过你的版本,和以前一样,地图只显示了一部分。无论如何,我已经更新了我的问题,因为有一个有效的解决方案。