После часа попыток заставить его работать, я думаю, что это из-за междоменных политик, но я действительно думал, что это будет работать.Я также не могу найти много информации об этом.Но вот моя проблема.У меня есть сайт с именем http://mysite.com, а затем я включаю сторонний скрипт (то, что я пишу) и его на http://supercoolsite.com/api/script.js, и этот скрипт должен динамически загружать API карт Google на: http://maps.google.com/maps/api/js?sensor=false до запускаНу, я подумал, что этот код будет работать:
function loadScript(filename,callback){
var fileref=document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", filename);
fileref.onload = callback();
if (typeof fileref!="undefined"){
document.getElementsByTagName("head")[0].appendChild(fileref)
}
}
loadScript('http://maps.google.com/maps/api/js?sensor=false',function(){
console.log('done loading');
init();
});
Но мой ответ в моей консоли:
api.js:408 done loading
api.js:115 test
api.js:310 Uncaught ReferenceError: google is not defined
"test
" находится наверху init()
,Итак, он загружает скрипт, но, похоже, не выполняет его.Итак, есть идеи?Если это проблема межсайтового скриптинга, мой единственный способ исправить это, о котором я мог подумать, это иметь PHP-скрипт на нашем конце, который в основном просто устанавливает заголовок на заголовок text / javascript и затем echo file_get_contents()
в googlemaps.php
файлхост.Собираюсь попробовать это, как мы говорим, но, если возможно, способ сделать это с помощью чистого JS был бы замечательным.
PS Я также пытался добавить jQuery, затем сделал getScript()
, и он все еще не работал
- ОБНОВЛЕНИЕ -
См. Эту скрипку: http://jsfiddle.net/ycMCa/2/
Вы увидите, что вы получите ошибку в своей консоли: Uncaught TypeError: undefined is not a function
Несмотря на то, что переменная google
является глобальной.