1

我的网站正在通过 Javascript 使用最新版本的 Google Maps API。我的网站还通过 AJAX 加载它的页面。我正在监听内部链接点击事件,然后加载页面,解析 DOM,通过 jQuery 选择我想要的内容并将其插入到 div 中。

当我加载我的联系页面(其中包含地图)时,地图加载正常。事实上,即使我加载另一个页面,然后单击联系人链接(导致联系人页面通过 AJAX 加载),地图也可以正常加载。一旦我查看了联系页面,如果我导航到另一个页面(通过 AJAX),然后通过单击联系链接(通过 AJAX)返回到联系页面,则地图只显示一个正方形,而地图的其余部分不显示加载。用于启动和设置地图的所有 Javascript 都在每次通过 AJAX 加载的联系页面代码中。

我曾尝试使用 Google Maps 事件方法来触发调整大小,但这并没有做任何事情。

有任何想法吗?

4

1 回答 1

2

这是时间问题。Google.maps “one-tile”条件是由于尝试在已渲染但隐藏或尚未渲染的 div 中加载初始化地图而引起的。

您可能没有考虑到的另一个问题是每次地图加载都会占用您的 Google 配额,这可能会很昂贵。使用“单页”站点设计,您可以通过将地图移动到主主机页面(但被隐藏)然后重新选择地图页面来最小化地图加载的数量。这很容易实现,并且可能会测试您的 javascript 能力。恐怕我不知道演示。

于 2013-08-12T20:16:49.283 回答