Как отлаживать динамически загруженный JavaScript (с помощью jQuery) в самом отладчике браузера?
динамически добавляемый скрипт не отображается в разделе скрипты отладчика браузера.
объяснение:
Мне нужно использовать и использовать
if( someCondition == true ){
$.getScript("myScirpt.js", function() {
alert('Load Complete');
myFunction();
});
}
Так что myScript.js может быть динамически загружен при выполнении некоторого условия... И myFunction можно вызвать только после загрузки всего скрипта...
но браузеры не показывают динамически загруженный myScript.js в разделе сценария отладчика.
там другой путь вокруг, так что все цели могут быть достигнуты, которые сделают один, чтобы иметь возможность отлаживать динамически загруженный скрипт там в самом браузере?
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".