jquery getscript возвращает исключение ошибки анализа
-
27-10-2019 - |
Вопрос
Я пытаюсь загрузить два сценария с $.getScript
Функция получения скрипта Google Map, затем после этого я получу еще один сценарий (goMap
), что делает карты апплеты легко сделать.
Однако при загрузке первый сценарий получения Google Map API хорош, тогда второй скрипт возвращает ошибку анализа и показывает это:
TypeError: «неопределенное» не конструктор '
Тем не менее, я не знаю, откуда это ссылается или на какую строку, я думаю, он должен быть попытаться выполнить геокодер в этом файле (первая строка после (function($){
:
Вот мой код:
$.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');
});
Я попытался изменить настройки Ajax на установку async
к false
, но это совсем не помогло.
Решение
Ошибка вызвана тем фактом, что API Google Maps ожидает загрузки в голову, используя <script src="http://maps.google.com/maps/api/js?sensor=true"></script>
.
Если вы не можете сделать это по какой -то причине, все еще есть надежда. API Google Maps не работает, потому что он использует document.write
Чтобы ввести зависимость на странице. Чтобы заставить код работать, вы можете перезаписать родной document.write
метод
Демонстрация: 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');
});
Другие советы
@lolwut попробуй
$.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');
});
Если это работает, то вы относительный путь ../js/gomap.js неправильно!