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

Почему в Chrome Developer Tools/Console не отображаются файлы/ошибки javascript, загруженные динамически?

Я загружаю файлы с помощью функции require внутри моего кода, которая добавляет тег <script/> к телу страницы с соответствующими атрибутами.

Сценарии загружаются только отлично, и они доступны, но если у меня есть ошибка в одном из них, она никогда не отображается в консоли, и у меня их нет на вкладке "Сценарии" внутри инструментов разработчика, по существу лишив меня возможностей отладки.

Что я делаю неправильно?

Моя функция запроса выглядит так:

require: function (moduleId) {
    var filename = this.config.modulesDir + '/' + moduleId + '/module.js';
    var script = $('<script></script>').attr({
        'src': filename,
        'type': 'text/javascript'
    }).appendTo('#Scripts');
}
4b9b3361

Ответ 1

Это прекрасно работает с последней версией Chrome (15.0.874.121). Я установил пример jsfiddle, и вы можете ясно видеть, как он работает:

http://jsfiddle.net/Tgax4/

В вашей проблеме есть два возможных решения:

  • Chrome не обновляется на вашей рабочей станции. Обновите его.
  • Вам нужны сценарии, которые не существуют, и почему они не указаны. Убедитесь, что у вас есть правильное местоположение.

Во втором случае хром должен сказать вам в консоли, что script не существует, поэтому я уверен, что он имеет какое-то отношение к более старой версии chrome.

Ответ 2

Рассматривали ли вы использование библиотеки типа require.js(http://requirejs.org/) для обработки ваших зависимостей?

С его помощью у меня никогда не было проблем с отладкой динамически загружаемых скриптов.

Ответ 3

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


Не могли бы вы попробовать заменить

$('<script></script>')

с

$('<script>')

Ответ 4

Убедитесь, что вы показываете сценарии из фрейма, который находится внутри devtools. Если вы загружаете скрипты внутри iframe, тогда вы должны выбрать этот фрейм в хромовом инспекторе в качестве текущей среды для отображения сценариев из этого фрейма. В левом нижнем углу chrome devtools рядом с кнопками находится небольшой выбор, который дает вам возможность изменить текущий кадр (по умолчанию есть). Попробуйте выбрать другой фрейм и проверить, будут ли появляться сценарии в селекторе script на вкладке "Сценарии".

А также, если вы не видите ошибок, проверьте, выбран ли выбранный ниже выбор внизу, вы выбрали правильный уровень ведения журнала - попробуйте выбрать кнопку "Все" и проверьте, не возникли ли вы когда-либо ошибки.