Подтвердить что ты не робот

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

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

Пояснение:

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

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

//# sourceURL=filename.js

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

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

Ответ 3

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

ПРИМЕЧАНИЕ. //@ sourceURL и //@ sourceMappingURL устарели.

Ответ 4

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

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

Ответ 5

Пытаясь отследить подобные вещи в IE, я открываю инструменты разработчика (F12) и затем нахожу, где разместить точку останова, используя следующую строку в консоли:

debugger;myFunction();

Это переключается на вкладку отладчика, где вы можете перейти в myFunction() и установить точку останова.