升级 WP Advanced Custom Fields 后,我遇到了 google maps 的问题。地图显示正确,但页面无休止地加载。FF 中的 JS 错误控制台显示错误:
Error: a is undefined
Source File: https://maps.gstatic.com/intl/en_us/mapfiles/api-3/10/19/main.js
Line: 70
Error: q.queue[Za]() is not a function
Source File: https://maps.gstatic.com/intl/en_us/mapfiles/api-3/10/19/main.js
Line: 74
我生成地图 JS 的代码是:
<script type="text/javascript" src="https://maps.google.com/maps/api/js? key=AIzaSyCwynu3lxKxNPk5DNMWCx8oyGX8ka8_KqU&sensor=false"></script>
<script type="text/javascript">
//<![CDATA[
var is_init = false;
var map;
function map_init() {
var latlng = new google.maps.LatLng(<?php echo $lat; ?>, <?php echo $lng; ? >);
var myOptions = {
zoom: <?php echo $zoom; ?>,
center: latlng,
scrollwheel: false,
panControl: false,
zoomControl: true,
mapTypeControl: false,
scaleControl: true,
streetViewControl: true,
overviewMapControl: false,
mapTypeId: google.maps.MapTypeId.<?php echo $maptype; ?>
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOp tions);
var marker;
var latlng;
<?php $i = 0; foreach($markers as $title=>$marker): ?>
<?php if(!empty($marker['lat']) && !empty($marker['lng'])) { ?>
latlng = new google.maps.LatLng(<?php echo $marker['lat']; ?>,<?php echo $marker['lng']; ?>);
marker<?php echo $i; ?> = new google.maps.Marker({
position: latlng,
map: map,
icon: '/wp-content/themes/iw/marker/<?php echo $marker['typ']; ? >.png',
title: '<?php echo $title; ?>'
});
google.maps.event.addListener(marker<?php echo $i; ?>, 'click', function() {
window.location.href = '<?php echo $marker['link']; ?>';
});
google.maps.event.addListener(marker<?php echo $i; ?>, 'mouseover', function() {
jQuery('.sbmlink<?php echo $i; ?>').addClass('mouseover');
});
google.maps.event.addListener(marker<?php echo $i; ?>, 'mouseout', func tion() {
jQuery('.sbmlink<?php echo $i; ?>').removeClass('mouseover');
});
<?php } ?>
<?php $i++; endforeach; ?>
is_init = true;
}
jQuery(function(){
jQuery('#map_button').click(function(){
jQuery('#map_canvas').toggle();
if (!is_init) {
map_init();
}
if(jQuery('#map_button').html() == 'Hier klicken, um die Karte einzublenden') {
jQuery('#map_button').html('Hier klicken, um die Karte auszublenden');
document.cookie="mapstate=open; path=/;";
} else {
jQuery('#map_button').html('Hier klicken, um die Karte einzublenden');
document.cookie="mapstate=closed; path=/;";
}
});
<?php if ($mapstate == 'open' || ($map_default_open && !isset($_COOKIE['mapstate']))): ?>
jQuery('#map_button').click();
<?php endif; ?>
jQuery.ajax({
dataType : 'json',
// url : '/wetter.php?ort=<?php echo $custom['wetterort'][0]; ?>',
success : function(data) {
jQuery('.wetterzustand').html(data.wetterzustand);
jQuery('.wettertemperatur').html(data.wettertemperatur + ' °C');
jQuery('.wettericon').html('<img alt="' + data.wetterzustand + '" src="' + data.wettericon + '"/>');
}
});
});
//]]>
</script>