"Нет символов, загруженных для текущего документа" при отладке JavaScript в Visual Studio
Я работаю над веб-сайтом .NET 3.5 с тремя проектами в рамках одного решения. Я использую jQuery в этом проекте. Я хотел бы использовать отладчик JavaScript Visual Studio для выполнения кода JavaScript. Если я установил точку останова в любом из файлов .js, я получаю предупреждение, в котором говорится:
В настоящий момент точка останова не будет удалена. Для этого документа не были загружены никакие символы.
Как это исправить? Я предполагаю, что Visual Studio испытывает некоторые проблемы с анализом через некоторый код jQuery. Я попытаюсь заменить свернутую версию jQuery.js
на расширенную версию, но я не думаю, что это исправит.
Ответы
Ответ 1
Я испытывал такое же поведение в Visual Studio 2008, и, проведя несколько минут, пытаясь загрузить символы, я закончил использование обходного пути - добавив строку с "отладчиком"; в моем файле JavaScript.
После добавления debugger;
при перезагрузке script в Internet Explorer он позволит вам открыть новый экземпляр отладчика script, и он остановится в вашей команде отладчика, чтобы вы отлаживали от есть.
В этом сценарии я уже отлаживал JavaScript в Firebug, но я хотел отлаживать и Internet Explorer.
Ответ 2
Убедитесь, что вы включили script отладка в своих интернет-вариантах. И если вы думаете об этом, проверьте его дважды.
Ответ 3
У меня была такая же проблема, но я решил ее, изменив настройки браузера в Internet Explorer. Перейдите в меню "Инструменты" → "Свойства обозревателя", выберите вкладку "Дополнительно", затем убедитесь, что оба параметра "Отключить Script" Отладка (Internet Explorer) "и" Отключить Script Отладка (другое) "не отмечены.
Кроме того, мне нужно было установить Internet Explorer в качестве браузера по умолчанию, который обычно устанавливается как Firefox. Для этого в Visual Studio щелкните правой кнопкой мыши по любому просматриваемому файлу в обозреватель решений и выберите "Обзор с...". Выберите Internet Explorer и нажмите "Установить по умолчанию".
Я не уверен, есть ли способ отлаживать работу с другими браузерами, но меня не удивило бы, если бы Visual Studio играла хорошо с Internet Explorer.
Кроме того, вам может потребоваться выполнить "Прикрепить к процессу" и добавить IExplorer.exe
, чтобы запустить отладчик.
Ответ 4
Я бы предложил использовать FireBug для отладки JavaScript. Дайте ему вращение:)
Ответ 5
Наконец-то я нашел ответ на этот вопрос.
Когда вы присоединяете свой отладчик к процессу iexplore.exe, вам нужно убедиться, что вы выбрали "Script" как один из вариантов отладки.
Это кнопка в красном поле здесь: Снимок экрана с кнопкой Select в окне Attach to Process
Затем на следующем экране выберите Script: Снимок экрана окна "Выбор типа кода"
Это предупредит вас, что вы не можете одновременно отлаживать Managed и Script, но это должно быть хорошо, потому что ваш управляемый код - это код вашего сервера, и вы присоединяетесь к веб-процессу (aspnet или w3wp).
Вы узнаете, что сделали это правильно, потому что VS 2008 будет загружать ВСЕ документы Script, относящиеся к этой странице (встроенные материалы, объекты eval и т.д.) в обозревателе решений.
У вас будет полный доступ к DOM, немедленное окно будет работать и т.д. Это довольно удобно.
Ответ 6
Еще одна вещь, которую вы можете найти, - это синтаксическая ошибка в вашем JavaScript-коде. Вот что случилось со мной сегодня. Никакие символы не будут загружаться, потому что в моем коде было слишком много круглых скобок. IntelliSense едва зарегистрировала ошибку. Как только я исправил синтаксическую ошибку, все работало нормально.
Ответ 7
Все эти ответы верны, но есть еще одна вещь, которую нужно проверить. До вчерашнего дня я всегда мог отлаживать свой код JavaScript изнутри Visual Studio (2012). Я добавил проект Silverlight в решение, которое включило Silverlight Debugger. Это была моя проблема.
На странице свойств веб-приложения → Параметры запуска → в нижней части страницы убедитесь, что "Silverlight" не установлен. На самом деле, я проверил только ASP.NET, и теперь отладчик проходит через Visual Studio.
Снимите флажок, и теперь отладчик останавливается на "инициализации", как я хотел.
Ответ 8
Вам нужно дождаться, когда IDE проанализирует код JavaScript. Подождите некоторое время, и вы увидите цвет изменения кода JavaScript. Затем вы сможете добавить точки останова.
Ответ 9
Решение для меня состояло в том, чтобы обновить IE с версии 9 до 11. Надеюсь, это кому-то поможет. Мир!
Ответ 10
У меня были такие же неприятные проблемы на Visual Studio 2013, а разработка JavaScript без отладчика - это просто самоубийство.
Все, что я сделал, чтобы исправить это, это щелкнуть правой кнопкой мыши точку останова red dot → Отключить точку останова, а затем снова щелкнуть правой кнопкой мыши → Включить точку останова.
Это снова заставило отладчик работать над JavaScript, как шарм.
Ответ 11
У меня иногда возникает эта проблема с внешними файлами JavaScript - это связано с тем, что кеш браузера содержит старую копию файла. Принудительное обновление страницы, ссылающейся на код JavaScript, решает проблему в этом случае.
Конечно, убедитесь, что ваш отладчик подключен к правильному браузеру.;)
Ответ 12
Это, возможно, очевидно очевидно, но я наткнулся на это на секунду, так что, возможно, другие тоже. У меня не было Internet Explorer, настроенного для обработки HTML/HTTP, и, следовательно, он не запускался, когда я нажал кнопку запуска в Visual Studio.
Вместо этого я запускал Firefox. Я пошел в кнопку "Пуск" | Программы по умолчанию, установите все значения по умолчанию для Internet Explorer, а затем отладка начала работать в Visual Studio для меня без каких-либо других проблем.
Ответ 13
Это также может произойти, когда ваше решение имеет несколько веб-проектов, даже если они обслуживаются с другого экземпляра ASP.NET Development Server (WebDev.WebServer40.exe) на разных портах.
Ответ 14
Если вы запускаете два или более веб-проектов в своем решении и имеете несколько файлов script с тем же именем в одном и том же месте в разных веб-сайтах, веб-серверы разработки могут обслуживать неправильный файл, что вызывает эту проблему.
В моем случае удаление дополнительных копий разрешило проблему.