Carregue dinamicamente JavaScript com JavaScript
Depois de mais de uma hora tentando fazê-lo funcionar, acho que é por causa de políticas entre domínios, mas achei que isso funcionaria. Também não consigo encontrar muitas informações. Mas, aqui está o meu problema. Eu tenho um site chamadohttp: //mysite.co e depois incluo um script de terceiros (o que estou escrevendo) e está emhttp: //supercoolsite.com/api/script.j e esse script precisa carregar dinamicamente a API do Google Maps em:http: //maps.google.com/maps/api/js? sensor = false antes de executar. Bem, achei que esse código funcionaria:
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();
});
Mas a minha resposta no meu console é:
api.js:408 done loading
api.js:115 test
api.js:310 Uncaught ReferenceError: google is not defined
a "test
"está no topo dainit()
. Então, ele está carregando o script, mas não está executando, ao que parece. Então, alguma ideia? Se for um problema de script entre sites, meu único método de consertar isso é pensar em ter um script PHP do nosso lado que basicamente apenas define o cabeçalho como um cabeçalho de texto / javascript e, em seguida,echo file_get_contents()
dentro degooglemaps.php
arquivo que hospedamos. Prestes a tentar isso enquanto falamos, mas, se possível, uma maneira de fazê-lo com JS puro seria incríve
P.S. Eu também tentei adicionar jQuery e depois fazergetScript()
e ainda não funcionou
- ATUALIZAÇÃO -
Veja este violino:http: //jsfiddle.net/ycMCa/2
Você verá o erro no seu console:Uncaught TypeError: undefined is not a function
Despeito que ogoogle
variável @ é globa