Google Maps api v3未在Safari 8,IE11中加载

时间:2016-07-26 12:23:19

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

我有以下代码来加载Google地图。它适用于大多数浏览器,但不适用于IE11和Safari 8.相反,我只获得容器背景颜色。

我认为它与未被调用的函数有关,因为如果我向脚本添加警报,它也会忽略它。该警报适用于地图加载的浏览器。

仅供参考 - php来自WP插件Advanced Custom Fields。

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCJ02VcPM0KRyiwWNd_hjr0nNnTMJkFmVs&sensor=false"></script>
<script type="text/javascript">
    //google.maps.event.addDomListener(window, 'load', init);

    function init() {
        <?php
            $location = get_field("map_location", $contactpage);
        ?>

        var lat = <?php echo $location['lat']; ?>;
        var lng = <?php echo $location['lng']; ?>;
        var myLatLng = {lat, lng};

        var lat = lat + 0.016;
        var latLngCenter = {lat, lng};

        var mapOptions = {
            zoom: 13,
            zoomControl: false,
            scaleControl: true,
            disableDoubleClickZoom: true,
            mapTypeControl: false,
            streetViewControl: false,
            draggable: false,
            disableDoubleClickZoom: true,
            scrollwheel: false,
            center: new google.maps.LatLng(latLngCenter),
            styles: <?php the_field("map_customization", $contactpage); ?>
        };

        var mapElement = document.getElementById('map');
        var map = new google.maps.Map(mapElement, mapOptions);

        <?php
            if(get_field("show_map_marker", $contactpage) == 1) { ?>
                var mapicon = '<?php the_field("map_marker_image", $contactpage); ?>';
                var marker = new google.maps.Marker({
                    position: myLatLng,
                    map: map,
                    title: '<?php the_field('map_marker_title', $contactpage); ?>',
                    icon: mapicon,
                    optimized:true
                });

            //alert("show map");

            //Remap map on resize.
            google.maps.event.trigger(map, "resize");   
        <?php
            };
        ?>
    };

    $(window).resize(init);
    $(document).ready(init);
</script>

1 个答案:

答案 0 :(得分:0)

我在IE11中遇到javascript错误:SCRIPT1003: Expected ':'在这些行上:

var myLatLng = {lat, lng};
// ...
var latLngCenter = {lat, lng};

那些需要:

var myLatLng = {lat: lat, lng: lng};
// ...
var latLngCenter = {lat: lat, lng: lng};