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

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

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

Что я делаю не так?

Моя функция require выглядит так:

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

Ответы [ 4 ]

5 голосов
/ 07 декабря 2011

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

http://jsfiddle.net/Tgax4/

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

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

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

2 голосов
/ 07 декабря 2011

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

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

1 голос
/ 01 декабря 2011

РЕДАКТИРОВАТЬ: не имеет значения, это был просто JSFiddle, желая избежать косой черты.Избежать этого заставило это работать на меня.Поэтому я не думаю, что ошибка в вашей функции.Может быть, вы предоставите нам более подробную информацию.


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

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

на

$('<script>')
0 голосов
/ 24 ноября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...