Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Отладка (debug) javascript'a на aspx странице.


Автор: andrew_sh 30.11.2007, 13:52
Как собставенно это делать ? Как ставить breakpoints и т.д. ???

Автор: Zakonnic 30.11.2007, 15:22
Никак smile 

Такое вроде умеет новая вижуалстудия (2008). А я пока обхожусь дивом с id='res', и кучей res.innerHTML+=myVariable+'; ';

Автор: Servena 30.11.2007, 16:41
Если ИЭксплоером пользуешься то включи режим отладки ошибок - тогда будешь видеть хотя бы где ошибка.
Есил Огненной лисой - там в Инструментах есть консоль ошибок - всегда можно посмотреть где ошибка. Или установи  специальное разсширение - там вообще все круто, все ДОМ виден.
Если Оперой - там тоже есть консоль ошибок - она всегда там сообщает "Где?".

Автор: andrew_sh 30.11.2007, 18:26
Пользуюсь (точнее испраляю написанное под...) IE..... Тут вопрос в том что работает все без ошибок..... На IE6 работает так ка нужно (например по нажатию кнопки заполняет поля), а в IE7 - нет (поля не заполняются)... Может кто подскажить какте-нибудь варианты, как это можно подебажить ??? Можно же както прикрутить Microsoft Script Debuger или дебагер от VS2005 ???

Добавлено через 1 минуту и 1 секунду
2Zakonnic:

А поподробней...С JS работаю первый раз.... smile 

Автор: Servena 30.11.2007, 18:40
Если есть возможность, то приведи код, где не срабатывает.
Потому что действительно, ДОМ у ИЭксплоэров, похоже, немного разный.
У нас на фирме тоже с этим проблемы возникают регулярно.

А отлаживают Джаваскрипт (не знаю, как там в Студии 2008) просто: используют алерты, инэрхтмл, консоли ошибок браузеров, разные "левые" средства.

Добавлено через 7 минут и 13 секунд
 smile Пока Мумика нету, давай код Джаваскрипт.

Автор: Mymik 1.12.2007, 10:00
Цитата(Servena @  30.11.2007,  18:40 Найти цитируемый пост)
 smile Пока Мумика нету, давай код Джаваскрипт. 

Я есть... меня не может не есть...  smile 

Цитата(andrew_sh @  30.11.2007,  18:26 Найти цитируемый пост)
На IE6 работает так ка нужно (например по нажатию кнопки заполняет поля), а в IE7 - нет (поля не заполняются)...

Во-первых, с такими вопросами лучше бы тебе обращаться в JS раздел. Там люди знающие сидят, а во-вторых, по тематике будет вопрос. А тут asp.net и JS теоретически тут не обсуждается... (разве что помогал тут рисовать с помощью JS, ну это исключительные вопросы, которые мне очень нравятся smile... творческие вопросы)


andrew_sh, Установи http://www.google.com/search?hl=ru&q=FireBug+For+IE&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr= это JavaScript библиотека... тебе поможет.

То что значения не присваиваются... ну это дело уже в ошибочных получениях ссылок на объекты или вызов ошибочных прототипов.
На сколько я помню, IE7 приближается к стандартам ECMAScript. так что могут некоторые излюбленные приколы книгомарателей по JS перестают работать.

Автор: Zakonnic 2.12.2007, 15:30
К сказанному выше добавлю, что увидев номер строки ошибки, сам код, ее вызывающий, можно найти, щелкнув правой кнопкой по странице -> View Source -> переходим к строке с этим номером (помогают текстовые редакторы, показывающие номера строк: EmEditor, Notepad++ и др.)

Цитата(andrew_sh @  30.11.2007,  18:26 Найти цитируемый пост)
А поподробней...С JS работаю первый раз...
Угу. Я пользую IE Developer Toolbar. Показывает весь DOM - можно просмотреть все свойства HTML-элементов, тыкнув в них мышью или выбрав в списке. Скрипты не показывает, их я смотрю в Опере, через похожий плагин. В смысле - сам текст скриптов. Но проблема твоя - посмотреть значения переменных при работе скриптов, посмотреть, куда пошел алгоритм и т.д. Делается это руками:

В любое удобное место в HTML вставляем, например,
Код

<div id='debug'></div>

В javascript имеем какую-то переменную myVariable и несколько мест в JS-коде, где интересует ее значение. Соответственно туда вместо брекпоинтов вставляем строки
Код

debug.innerHTML+='метка1:'+myVariable+'; ';
...
debug.innerHTML+='метка2:'+myVariable+'; ';
...

И вот в этот div будут дописываться отладочные данные. Метки - чтобы в них не заблудиться.

Автор: Magnetic 5.12.2007, 19:38
Чтобы отлаживать яваскрипт в 2005-й студии можно в ИЕ включить дебаг яваскприта в настройках и
 в коде поставить оператор:
Код

debugger;

который срабатывает как брейкпойнт.

Автор: andrew_sh 6.12.2007, 12:37
Спасибо всем за ответы. Вариант Magnetic'a то что нужно....  Ссылка по теме http://blogs.msdn.com/ie/archive/2004/10/26/247912.aspx

Вообще проблема заключалась в том, что в IE 7 другая последовательность событий.... Пришлось немного поизващаться над JS кодом...

Автор: vladsch 25.12.2007, 17:48
Или я не понял вопроса или вы не знаете этих элементарных вещей:

Дебаг в Internet Explorer 
Откройте Visual Studio. Запустив браузер, можно к нему приаттачиться (iexplorer.exe) используя меню Tools | Attach to Process (если браузер открывается из под студии, то можно и не аттачиться). Открываем окошко Script Explorer в Visual Studio, используя меню Debug | Windows. Это окошко покажет все доступные скрипты. Можно открыть любой скрипт и поставить брякпоинт. 

P.S: Убедитесь что отладка разрешена в Internet Explorer. По умолчанию она выключена. Чтобы разрешить отладку, откройте диалог Internet Options, используя меню Tools | Options, и выберите вкладку Advanced. В категории Browsing выставите следующие опции: 
- Disable script debugging (Internet Explorer): снять выделение 
- Disable script debugging (Other): снять выделение 
- Display a notification about every script error: установить выделение

Также можно джаваскрипт код вставить волшебное слово debugger и студия легко его поймает во время выполнения этого кода и переключится в режим отладки джаваскрипта

Отладка в Firefox 
Берем Firebug (https://addons.mozilla.org/firefox/1843/) расширение для Firefox, которое встраивает дебаггер прямо в браузер. Этот дебаггер эквивалентен дебаггеру Visual Studio.

Удачи

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)