URL не определен - PullRequest
       1

URL не определен

0 голосов
/ 07 декабря 2011

Интересно, сможет ли кто-нибудь мне помочь, пожалуйста.

Я собрал эту страницу, но я получаю сообщение об ошибке, которое не знаю, как решить.

Ошибка, которую я получаю в Firefox: «downloadURL не определен», и она выделяет эту строку как проблему:

downloadUrl("loadallmyfinds.php", function(data) { 

Эта страница работала правильно, пока я не добавил эту функцию JS,

(function reversegeocode() {

так что очевидно, что проблема заключается во введении этого.

Но я уже несколько раз просматривал сценарий и просто не могу найти проблему. Я проверил скрипт php и знаю, что из базы данных mySQL извлекается правильная информация. Используя этот тип файла ранее, я также проверил правильность синтаксического анализа xml с точки зрения формата и т. Д.

Я должен признать, что был довольно новым для javscript, поэтому, возможно, мое отсутствие знаний подводит меня.

Мне просто интересно, может ли кто-нибудь взглянуть на это, пожалуйста, и дайте мне знать, что я делаю неправильно.

Большое спасибо

Ответы [ 2 ]

1 голос
/ 07 декабря 2011

Возьмите весь вызов downloadUrl():

downloadUrl("loadallmyfinds.php", function(data) { 
  // .. rest of the function ..
}); 

... и переместите его в нижнюю часть функции load(), ниже doNothing() {}.

Также сделайтеубедитесь, что вы используете JSHint или JSLint , чтобы проверить код на наличие ошибок.У вас есть некоторые ошибки там.Несколько широко используемых редакторов / IDE поддерживают этот инструмент.Или вы можете использовать Cloud9 IDE в качестве бесплатной веб-среды IDE с поддержкой проверки ошибок.

Также исправьте это:

google.maps.event.addListener(gmarker, function() {
  updateMarkerAddress; // <- this is a function and you are not calling it
});

РЕДАКТИРОВАТЬ:

Очень полезный комментарий от Адама Ракиса , касающийся моего недостатка знаний о подъеме (см. Комментарии ниже его ответ):

Если вы определяете функцию в форме: function downloadUrl() {...} (которая является OP), тогда не имеет значения, вызывается ли она до того, как будет определена.Определения функций подняты в верхнюю часть области.Только если вы сделаете что-то вроде var downloadUrl = function() { ... }, определение функции не будет поднято (только объявление).

1 голос
/ 07 декабря 2011

Вот где объявлен ваш downloadUrl:

function downloadUrl(url, callback) {
       var request = window.ActiveXObject ?
            new ActiveXObject('Microsoft.XMLHTTP') :
            new XMLHttpRequest;

       request.onreadystatechange = function () {
            if (request.readyState == 4) {
                request.onreadystatechange = doNothing;
                callback(request.responseText, request.status);
            }
       };

       request.open('GET', url, true);
       request.send(null);
}
//two other functions elided

})   // <------ what's this?!

Похоже, что вы объявляете эту функцию внутри другой области видимости, что означает, что она не доступна глобально, как предполагает ваш код.Вероятно, именно поэтому вы получаете необъявленную ошибку

РЕДАКТИРОВАТЬ

Я переместил вашу функцию downloadUrl в самую верхнюю скрипта, иВы больше не получаете эту ошибку.К сожалению, теперь вы получаете сообщение о том, что doNothing не определено.

Вам просто нужно загрузить весь этот JavaScript-код в дружественную к JavaScript IDE (не Visual Studio) и действительно распутать все эти скобки и скобки, чтобы вы могли выяснить, где находится ваша нежелательная область.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...