Использование точек останова для отладки Javascript в IE и VS2008

Я не могу использовать точку останова в Studio с Javascript. Я могу отлаживать, если использую отладчик;

Я видел этот точка останова не подключена при отладке в VS.Net 2005 уже вопрос. Я попробовал ответить, но ничего не вышло.

просмотр в окне модули, V. Mvc.Jobtrakt.PDB загружен правильно, но он указывает на временную папку C:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Файлыrootdbc0c0c5f64a99b3assemblydl39de055b3eb1303b1_9760c901V. Mvc.Jobtrak.ПДБ: символы загружены.

Я бы подумал, что это бы: JobTrakСайтВ. В MVC.JobtrakВ. В MVC.JobtrakobjDebug (это находится в каталоге проекта)

но независимо от местоположения я закрыл VS 2008, а затем сдул временную папку (указанную выше), папки bin и obj.

открыл VS 2008 и сделал чистый. Я установил точку останова в js, и это казалось, что теперь это сработает ( точка останова была заполнена) Начал отлаживать, и он никогда не ломается на точке останова. Посмотрите на точку разрыва, и теперь это красный круг с красной точкой и предупреждающим индикатором. Наведение на точку останова дает мне эту полезную информацию: точка останова в настоящее время не будет поражена. Расположение не может быть сопоставлено со сценарием на стороне клиента. См. справку по сопоставлению точек останова ASPX. Меня не перенаправляют, точка останова находится в функции. бла бла бла это должно работать.

Итак, мне было интересно, есть ли у кого-нибудь идеи? Кто-нибудь может установить точки останова в VS2008 и заставить их работать?

7 ответов


попробуйте ввести "отладчик" в источнике, где вы хотите сломать


убедитесь, что вы подключены к правильному процессу. Например, после загрузки страницы в IE,

  1. переключитесь в Visual Studio и перейдите в меню "отладка".
  2. выберите "присоединить к процессу"
  3. найдите iexplore в списке и выберите его.
  4. нажмите "Выбрать..." кнопка.
  5. в диалоговом окне выберите "отладка этих типов кода:" и выберите только "сценарий".
  6. нажмите "OK"
  7. клик "Прикрепить"

посмотрите, поможет ли это вам отладить javascript.


это случилось и со мной. Точки останова перестали работать в некоторых функциях. В моем случае проблема заключалась в том, что я использовал <%=..%> внутри скрипта. Насколько я мог понять, читая MSDN, это происходит потому, что Visual Studio отображает линии точки останова из .ASPX к результирующему HTML на основе содержимого строки, поэтому, когда вы ставите <%=..> ваш результирующий скрипт будет отличаться от той, что в .


вам не нужно ставить отладчик в javascript. У меня это произошло, и причиной была ошибка в скрипте в блоке try catch с точки зрения синтаксиса. Как только я исправил синтаксис, точки останова снова отображаются правильно.


Грег ответил на вопрос, однако, чтобы добавить еще некоторое значение для ответа -

поместите отладчик в код сценария java.

также убедитесь, что у вас включен отладчик в internet explorer > инструменты > Свойства обозревателя > Advance

Не следует устанавливать флажки для отключенной отладки.


в моем случае я должен был использовать

$.Аякс({ тип: "GET",

$.Аякс({ тип: "POST",...

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

<script type="text/javascript">  
$(function() {
    //event handler to the checkbox selection change event
    $("input[type=checkbox]").change(function() {
        //variables to store the total price of selected rows
        //and to hold the reference to the current checkbox control
        var totalPrice = 0, ctlPrice;
        //iterate through all the rows of the gridview
        $('#Grid2 tr').each(function() {
        //if the checkbox in that rows is checked, add price to our total proce
            alert("Hi")
            if ($(this).find('input:checkbox').attr("checked")) {
                ctlPrice = $(this).find('[id$= lblPackAmount]');
                //since it is a currency column, we need to remove the $ sign and then convert it
                //to a number before adding it to the total
                totalPrice += parseFloat(ctlPrice.text().replace(/[^\d\.]/g, ''));
            }
        });
        //finally set the total price (rounded to 2 decimals) to the total paragraph control.
        //alert(totalPrice);
        $('#lblAmount').text(totalPrice);               
    });
});
</script>