Google地图在IE8(WordPress)中不起作用



不知道为什么...在其他每个浏览器和平台上都可以正常工作。

我在网络周围的远距离观看了很长时间,并且在这里尝试了一些建议的修复程序,但这似乎是已经发布的内容的新问题。我希望有人能提供帮助。

示例页面:http://greenleavesmarketing.co.uk/sherif/contact/

header.php:

<?php //Map 
echo '<script type="text/javascript">
    function initialize() {
        var locations = [
      ['';
    if($options['custom_logo']) { 
        echo '<img src="' . $options['custom_logo'] . '" alt="';
        echo bloginfo('name');
        echo '" style="width:150px;padding: 0px; margin: 10px 0px 0px 0px;" />';
    }
echo '<p><strong>'.$options["company"].'</strong><br />'.$options["address-one"].'<br />'.$options["address-two"].'<br />'.$options["postcode"].'</p>', '.$options["latitude"].', '.$options["longitude"].', 1],';

if($options['latitude2'] != '') {           
echo '['';
    if($options['custom_logo']) { 
        echo '<img src="' . $options['custom_logo'] . '" alt="';
        echo bloginfo('name');
        echo '" style="width:150px;padding: 0px; margin: 10px 0px 0px 0px;" />';
    }
echo '<p><strong>'.$options["company"].'</strong><br />'.$options["address-one2"].'<br />'.$options["address-two2"].'<br />'.$options["postcode2"].'</p>', '.$options["latitude2"].', '.$options["longitude2"].', 2]'; 
}
echo '];
        window.map = new google.maps.Map(document.getElementById('map'), {
            mapTypeId: google.maps.MapTypeId.ROADMAP
        });
        var infowindow = new google.maps.InfoWindow();
        var bounds = new google.maps.LatLngBounds();
        for (i = 0; i < locations.length; i++) {
            marker = new google.maps.Marker({
                position: new google.maps.LatLng(locations[i][1], locations[i][2]),
                map: map
            });
            bounds.extend(marker.position);
            google.maps.event.addListener(marker, 'click', (function (marker, i) {
                return function () {
                    infowindow.setContent(locations[i][0]);
                    infowindow.open(map, marker);
                }
            })(marker, i));
        }
        map.fitBounds(bounds);
        var listener = google.maps.event.addListener(map, "idle", function () {
            map.setZoom(' . $options["zoom"] . ');
            google.maps.event.removeListener(listener);
        });
    }
    function loadScript() {
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&' + 'callback=initialize';
        document.body.appendChild(script);
    }
    window.onload = loadScript;


    </script>'; ?>

您的locations数组正在输出为:

 var locations = [
      ['<p><strong>The London Dental Clinic</strong><br />40 Harley St<br />London<br />W1G 9PP</p>', 51.518676921614315, -0.14653116464614, 1],];

IE8将其视为长度2的数组,然后在javaScript中造成循环中的错误。如果您在上次]之前立即删除逗号,则应起作用。

您可能应该将PHP更改为:

if($options['custom_logo']) { 
        echo '<img src="' . $options['custom_logo'] . '" alt="';
        echo bloginfo('name');
        echo '" style="width:150px;padding: 0px; margin: 10px 0px 0px 0px;" />';
    }
echo '<p><strong>'.$options["company"].'</strong><br />'.$options["address-one"].'<br />'.$options["address-two"].'<br />'.$options["postcode"].'</p>', '.$options["latitude"].', '.$options["longitude"].', 1]';

if($options['latitude2'] != '') {           
    echo ', ['';
    if($options['custom_logo']) { 
        echo '<img src="' . $options['custom_logo'] . '" alt="';
        echo bloginfo('name');
        echo '" style="width:150px;padding: 0px; margin: 10px 0px 0px 0px;" />';
    }

如果定义了第二个位置,请查看如何将其更改为仅添加逗号?

请注意,我实际上不知道PHP,所以我可能错误地更改了它:)

最新更新