javascript - 仅在页面刷新后加载 Google Maps API v3

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

我正在为我正在处理的网页摆弄 Google Maps API。我现在的问题是, map 完全按照我的意图加载,但仅在刷新页面后加载。如果我不刷新页面,我只能看到 Canvas 。如果我离开页面并返回到它,问题仍然存在,所以调用 map 到 initialize 似乎是一个问题。 .

代码:

<style>
    #map_canvas {
    width: 670px;
    height: 400px;
    background-color: #CCC;
    }
</style>
<script src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script>
    function initialize() {

        var myLatLng = new google.maps.LatLng(31.247681, 121.449504);

        var map_canvas = document.getElementById('map_canvas');

        var map_options = {
        center: new google.maps.LatLng(31.248195, 121.447431),
        zoom: 16,
                mapTypeControl: false,
                panControl: false,
        zoomControlOptions: {
                    position: google.maps.ControlPosition.LEFT_CENTER
        },
        streetViewControl: false,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }

    var map = new google.maps.Map(map_canvas, map_options);

        var contentString =
            '<b>Leung Gallery</b>' +
            '<p>50 Moganshan Rd. Building 7, Unit 108, Shanghai</p>' +
            '<p>&#19978;&#28023;&#26222;&#38464;&#21306;&#33707;&#24178;&#23665;&#36335;50&#21495;7&#21495;&#27004;108&#23460;</p>';

        var infowindow = new google.maps.InfoWindow({
            content: contentString
        });

        var marker = new google.maps.Marker({
            position: myLatLng,
            map: map,
        });

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

        google.maps.event.addListener(marker, 'click', function(){
            infowindow.open(map,marker);
        });

    }

    google.maps.event.addDomListener(window, 'load', initialize);
</script>​

浏览之前的问题,我没有找到任何与我的问题完全匹配的问题,但我看到了一些围绕 google.maps.event.addDomListener(window, 'load', initialize); 的类似情况。所以我想这可能是问题所在。感谢您的帮助。

编辑:指向正确的方向。添加$(document).bind("projectLoadComplete", initialize);google.maps.event.addDomListener(window, 'load', initialize); 之后解决了这个问题。问题是使用导航时页面没有完全加载。这个问题可能是 Cargo Collective 平台独有的。

最佳答案

经过几个小时的寻找解决方案失败后,我终于找到了这个:

只需替换:

google.maps.event.addDomListener(window, 'load', initialize);

与:

$(document).ready(function(){
  initialize();
});

关于javascript - 仅在页面刷新后加载 Google Maps API v3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19651008/

相关文章:

android - 绘制方向并通过解析方向api overview_polyline

android - 在 map 上创建自适应网格以进行聚类

asp.net - 更新面板内的 Google map

javascript - 数组数据未使用 this.props 在数据表中呈现 - ReactJS

javascript - 解析 Highcharts 的 JSON 数据

javascript - 使用 Javascript 淡入/淡出英雄单元中的不同文本

JavaScript - 悬停时的工具提示 div

javascript - 从 Google Feed API 同时绘制多个 Fe​​ed

javascript - 使用 CSV 或 JS 文件填充 HTML 表中的特定 TD

javascript - offset() jquery 函数的跨浏览器问题