Google Maps API的初始化功能没有ONLOAD正文标记或在结束正文之前

时间:2013-03-14 13:56:45

标签: javascript jquery html google-maps-api-3

我正在使用DotNetNuke CMS的网站上工作。我已经使用API​​添加了Google Maps地图,但是我需要在页面加载时调用initialize()函数。通常你会这样做:

<body onload="initialize()">

或在&lt;之前添加以下内容/体&GT;标记:

<script type="text/javascript">
    window.onload = function () {
        initialize();
    }
</script>

但是我无法访问body标签或标签的确切结尾。有没有其他方法可以在不进行上述操作的情况下调用此函数?

3 个答案:

答案 0 :(得分:6)

在窗口加载事件上执行此操作不是一个好主意 - 如果您有一些高延迟图像或其他资源加载,那么您的Google地图将加载速度非常慢。在关闭正文标记之前,添加以下内容:

<script>
 initialize();
</script>

所有谷歌在构建它之前需要准备好它的地图是DOM,而不是页面上的每一个资产。在脚本在关闭正文标记之前加载时,DOM总是完全加载。

修改

从技术上讲,所有谷歌地图都需要在它构建之前做好准备它的地图是它将被放置的div。所以你甚至不需要在关闭身体标签之前有脚本,你可能有它紧跟在你的地图div标签之后:

<html>
...
<body>
...html...

<div id="map-canvas"></div>
<script>initialize();</script>


...more html
</body>

答案 1 :(得分:5)

当我偶然尝试某事时,我已经想通了。将以下内容添加到标题中很重要。 API V3万岁!

<script type="text/javascript">
    google.maps.event.addDomListener(window, 'load', initialize);
</script>

答案 2 :(得分:1)

你也可以按照以下方式打电话

    <div id="map-canvas"></div>

    $("#map-canvas").on("load", function () {
       initialize();            
    });