2015-05-22 2 views
0

Я использую плагин ajax (Ajaxify Wordpress Site) для моего сайта Wordpress, и мне удалось заставить карты Google работать, но я получаю сообщение об ошибке «Вы включили API Карт Google несколько раз на этой странице ".Ajax Wordpress и Google Maps

Я помещён сценарий Google Maps в моей функции файл и включается следующий код в моем файле JS:

var map; 
function initialize() { 
    var mapOptions = { 
     zoom: 8, 
     center: new google.maps.LatLng(-34.397, 150.644) 
    }; 
    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 
} 
google.maps.event.addDomListener(window, 'load', initialize); 

Чтобы получить плагин Ajax, чтобы перезагрузить скрипт Google Maps я добавил этот код плагин js, где я думаю, проблема заключается в следующем:

scriptNode = document.createElement('script'); 
contentNode.appendChild(scriptNode); 
scriptNode.setAttribute('src', 'https://maps.googleapis.com/maps/api/js?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' + 
    '&signed_in=true&callback=initialize'); 
scriptNode = document.createElement('script'); 

Любые идеи?

+1

Я надеюсь, что вы не просто опубликовать свой собственный Google ключ апи там ... – Cerbrus

+0

Не будет ли эта работа: ' if (! google) {scriptNode = document.createElement ('script'); // ...} '**? ¿** –

+0

Вы можете попробовать getJSON() функцию jQuery, похожую на этот вопрос: [загрузить google maps api через ajax] (http://stackoverflow.com/questions/2811787/jquery -how-can-i-load-the-google-maps-api-through-ajax) – mk117

ответ

0

В конце концов, я пошел на изменение этого от How to check if Google Maps API is loaded?:

function appendBootstrap() { 
if (typeof google === 'object' && typeof google.maps === 'object') { 
    handleApiReady(); 
} else { 
    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    script.src = "http://maps.google.com/maps/api/js?sensor=false&callback=handleApiReady"; 
    document.body.appendChild(script); 
} 
} 

function handleApiReady() { 
var myLatlng = new google.maps.LatLng(39.51728, 34.765211); 
var myOptions = { 
    zoom: 6, 
    center: myLatlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
} 
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
} 
Смежные вопросы