createElement (script) / appendChild как отладить добавленный скрипт?

1
    var js = document.createElement("script");
    js.type = "text/javascript";
    js.innerHTML = layout[i].text;
    document.body.appendChild(js);

Я добавляю такой скрипт, замечаю, что нет src, но innerHTML вместо этого, скрипт извлекается по требованию с помощью XMLHttpRequest. К сожалению, скрипт не появляется в инструментах dev, а не в Chrome, а не в Firefox.

Как добавить скрипт из исходной строки, чтобы я мог отлаживать его в devtools?

  • 0
    Я не понимаю, как вы получаете скрипт, когда src отсутствует? Или вы ищете встроенный скрипт для появления? В этом случае, что такое содержимое макета [i] .text?
  • 0
    Исходный код скрипта @lustoykov был загружен с помощью XMLHttpRequest
Показать ещё 1 комментарий
Теги:
google-chrome-devtools
debugging
firefox-developer-tools

1 ответ

1
Лучший ответ

Чтобы иметь возможность отлаживать динамически добавленные скрипты в Chrome, вам нужно добавить //# sourceURL = test_file_name.js в конце скрипта, который вы хотите отлаживать, например ниже

var js = document.createElement("script");
js.type = "text/javascript";
js.innerHTML = layout[i].text + "//# sourceURL=test_file_name.js";
document.body.appendChild(js);

Теперь, если вы откроете вкладку source в консоли Dev, вы найдете test_file_name.js в разделе (без домена) (обычно). Я просто проверил его в Chrome версии 67.0.X

Я считаю, что то же самое должно работать и с Firefox,

См. Также эти ссылки,

Инструменты Chrome Dev

Исправлено синтаксис sourceMappingURL и sourceURL

Обновление: это не работает в firefox. Для этой проблемы создано несколько ошибок, но до сих пор не исправлено, скриптовый тег с использованием sourceURL не отображается в панели источников отладчика

  • 0
    Не работал в Firefox, хотя
  • 0
    Да, только что нашел ссылку на эту ошибку, не уверен, есть ли обходной путь

Ещё вопросы

Сообщество Overcoder
Наверх
Меню