Почему в 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');
}
Ответы
Ответ 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 на вкладке "Сценарии".
А также, если вы не видите ошибок, проверьте, выбран ли выбранный ниже выбор внизу, вы выбрали правильный уровень ведения журнала - попробуйте выбрать кнопку "Все" и проверьте, не возникли ли вы когда-либо ошибки.