with script multiple inside ejemplo dynamically jquery ajax google-maps getscript

jquery - script - load js inside js



jQuery getScript devuelve una excepción de error de análisis (2)

Estoy tratando de cargar dos scripts con la función $.getScript de obtener el script de Google Map, y luego de que se cargue, obtengo otro script ( goMap ) que hace que los applets de mapas se puedan hacer fácilmente.

Sin embargo, cuando se carga, la primera secuencia de comandos para obtener Google Map API es buena, entonces la segunda secuencia de comandos devuelve un error de análisis y muestra esto:

TypeError: ''undefined'' no es un constructor ''

Sin embargo, no sé de dónde está haciendo referencia o de qué línea, creo que debe tratar de ejecutar el Geocoder en este archivo (primera línea después de (function($){ :

http://www.pittss.lv/jquery/gomap/js/jquery.gomap-1.3.2.js

Aquí está mi código:

$.getScript(''http://maps.google.com/maps/api/js?sensor=true'').done(function() { $.getScript(''../js/gomap.js'').done(function() { // this never gets called alert(''gomap loaded''); }).fail(function(jqxhr, settings, exception) { alert(exception); // this gets shown }); }).fail(function() { alert(''failed to load google maps''); });

Traté de cambiar la configuración de AJAX para configurar async en false , pero no ayudó en absoluto.


@lolwut Prueba

$.getScript(''http://maps.google.com/maps/api/js?sensor=true'').done(function() { alert(11); $.getScript(''http://www.pittss.lv/jquery/gomap/js/jquery.gomap-1.3.2.js'').done(function() { // this never gets called alert(''gomap loaded''); }).fail(function(jqxhr, settings, exception) { alert(exception); // this gets shown }); }).fail(function() { alert(''failed to load google maps''); });

Si esto funciona, entonces tu ruta relativa .../ js/gomap.js es incorrecta.


El error se debe al hecho de que la API de Google Maps espera cargarse en el encabezado, usando <script src="http://maps.google.com/maps/api/js?sensor=true"></script> .

Si no puedes hacer eso por alguna razón, todavía hay esperanza. La API de Google Maps no funciona, porque usa document.write para inyectar una dependencia en la página. Para que el código funcione, puede sobrescribir el método nativo document.write .

Demostración: http://jsfiddle.net/ZmtMr/

var doc_write = document.write; // Remember original method; document.write = function(s) {$(s).appendTo(''body'')}; $.getScript(''http://maps.google.com/maps/api/js?sensor=true'').done(function() { $.getScript(''../js/gomap.js'').done(function() { alert(''gomap loaded''); document.write = doc_write; // Restore method }).fail(function(jqxhr, settings, exception) { alert(exception); // this gets shown document.write = doc_write; // Restore method }); }).fail(function() { alert(''failed to load google maps''); });