Как отлаживать динамически загруженный JavaScript (с помощью jQuery) в самом отладчике браузера?


динамически добавляемый скрипт не отображается в разделе скрипты отладчика браузера.

объяснение:

Мне нужно использовать и использовать

if( someCondition == true ){
   $.getScript("myScirpt.js", function() {
       alert('Load Complete');
       myFunction();
   });
}

Так что myScript.js может быть динамически загружен при выполнении некоторого условия... И myFunction можно вызвать только после загрузки всего скрипта...

но браузеры не показывают динамически загруженный myScript.js в разделе сценария отладчика.

там другой путь вокруг, так что все цели могут быть достигнуты, которые сделают один, чтобы иметь возможность отлаживать динамически загруженный скрипт там в самом браузере?

4 62

4 ответа:

вы можете дать своему динамически загруженному скрипту имя, чтобы он отображался в отладчике Chrome/Firefox JavaScript. Для этого вы размещаете комментарий в конце скрипта:

//# sourceURL=filename.js

этот файл будет отображаться на вкладке "Источники" как filename.js. По моему опыту вы можете использовать \ 's в названии, но я получаю странное поведение при использовании /' s.

для получения дополнительной информации см.: точки останова в динамическом JavaScript устаревание / / @sourceurl

можно использовать //# sourceURL= и //# sourceMappingURL= в конце файла скрипт или тег script.

Примечание://@ sourceURL и //@ sourceMappingURL устарели.

Я попытался использовать " / / # sourceURL=filename.js", который был предложен в качестве обходного пути OP, но он все еще не появлялся для меня на панели источников, если он уже не существовал на моих вкладках с предыдущего раза, когда он создал исключение.

кодирование строки "debugger;" заставило ее сломаться в этом месте. Затем, как только он был в моих вкладках на панели источников, я мог установить точки останова как обычно и удалить строку "debugger;".

обратите внимание, что исходный файл, отображаемый на вкладке Источники таким образом, появится в (нет домена) группа и, в случае, если вы хотите отладить его, вам нужно будет добавить debugger; строка в коде, сделать эту строку будет выполняться (обычно в начале выполнения исходного файла), а затем добавить точки останова, где вы хотите.

в случае, если вы отлаживаете этапы производства, где у вас, вероятно, не будет debugger; строки в коде, вы можете сделать это произойдет выполнив локальную карту с CharlesProxy для вашей "свежей копии исходного файла с вставленной линией debbuger".