JQuery GotScript gibt eine Parse -Fehlerausnahme zurück
-
27-10-2019 - |
Frage
Ich versuche zwei Skripte mit dem zu laden $.getScript
Funktion zum Erhalten von Google Map -Skript, danach erhalte ich ein anderes Skript (danach erhalte ich ein anderes Skript (goMap
) die MAP -Applets leicht zu machen.
Wenn jedoch geladen wird, ist das erste Skript zum Abholen von Google Map -API gut, dann gibt das zweite Skript einen Parse -Fehler zurück und zeigt dies an:
TypeError: 'undefiniert' ist kein Konstruktor '
Ich weiß jedoch nicht, wohin das aus oder auf welche Zeile wird, ich denke, es muss versuchen, den Geocoder in dieser Datei auszuführen (erste Zeile danach (function($){
:
Hier ist mein Code:
$.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');
});
Ich habe versucht, die AJAX -Einstellungen auf das Festlegen zu ändern async
zu false
, aber es half überhaupt nicht.
Lösung
Der Fehler wird durch die Tatsache verursacht, dass die Google Maps -API erwartet, in den Kopf geladen zu werden <script src="http://maps.google.com/maps/api/js?sensor=true"></script>
.
Wenn Sie das aus irgendeinem Grund nicht tun können, gibt es immer noch Hoffnung. Die Google Maps -API funktioniert nicht, da sie verwendet wird document.write
eine Abhängigkeit in die Seite injizieren. Um den Code zum Laufen zu bringen, können Sie den Eingeborenen überschreiben document.write
Methode.
Demo: 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');
});
Andere Tipps
@lolwut versuchen
$.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');
});
Wenn dies funktioniert, sind Sie relativer Weg ../js/gomap.js ist falsch!