2010-08-02 1 views
0

У меня есть компонент ASCX, который имеет много javascript, объявленных в теге script в самом ascx. Я могу установить точки останова, и отладчик останавливается так, как должен, но текст, выделенный в отладчике как «текущая строка», нигде не находится рядом с фактическим javascript (он намного выше в рендеринге, чем должен быть). Я могу «крыло» для одной или двух строк с реальным кодом бок о бок с «ложной» строкой исполнения, но я теряю все возможности наведения и все остальное, что делает отладку javascript полезной.Отладка IE8 Компонент ASCX не показывает правильное местоположение в коде javascript, когда он останавливается

Я попытался поставить скрипт в верхней части моего файла ascx, но безрезультатно. Я пробовал не устанавливать точку останова до тех пор, пока вся страница не будет отображаться, поэтому мне нужно прокрутить весь путь до того, где находятся фактические строки кода, а отладчик все равно останавливается где-то над ним.

Кто-нибудь еще видел это или нет, как обойти его?

Пожалуйста, не отвечайте на предложения об использовании другого браузера. Этот сайт не работает, кроме IE7 и IE8.

Спасибо!

ответ

0

Переместите сценарий во внешний JS-файл.
(Это хорошая практика в любом случае)

+0

Я согласен, что это хорошая практика, и это была моя первая мысль, но рассматриваемый javascript широко использует замены ASP.NET <% = whataver%>. Я мог бы изменить все это и переместить сценарий, но я содрогнулся, чтобы подумать о новых ошибках, которые я буду представлять, делая это. – Craig

0

Я имею дело с тем же вопросом, что и вы. Я не могу переместить код js на внешний JS (потому что парень, который написал код, использует переменные .cs с <% = var%>. Самое простое решение, которое я нашел, это написать отладчик; где угодно вы хотите, чтобы браузер, чтобы начать отладку сценария

1

Наконец !!!

Я искал решения этого вопроса для МЕСЯЦЕВ

Это работает для меня:.!

<script type="text/javascript" language="javascript"> 
    debugger 
    function ThrowError() { 
     $(function() { 
      $.openDOMWindow({ 
       loader: 0, 
       width: 500, 
       height: 250, 
       windowSourceID: '#ErrorAlert' 
      }); 
      return false; 
     }); 
    } 
    function CloseError() { 
     $(function() { 
      $.closeDOMWindow({}); 
      return false; 
     }); 
    } 

    if ("False" == "True") ThrowError(); 
</script> 

Я не знаю, правильно ли я использую его, но мне кажется, что мне нужно.

спасибо !!