不知道为什么......在其他所有浏览器和平台上都能正常运行。
我已经对网络进行了很好的浏览,并尝试了一些建议的修复程序,但这似乎是已经发布的新问题。我希望有人可以提供帮助。
示例页面: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>'; ?>
答案 0 :(得分:1)
您的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,因此我可能错误地更改了它:)