Открыть Chrome Inspector с помощью кода, чтобы поймать быстрые точки останова?

Вот ситуация. Всплывающее окно содержит javascript, который мне нужно отладить. Он также содержит перенаправление, которое происходит так быстро, что я не могу открыть Инспектор достаточно быстро, чтобы сработали точки останова. Я начинаю с открытого Инспектора и щелкаю ссылку, которая закрывает Инспектор и открывает всплывающее окно, содержащее javascript. Но происходит логика, и перенаправление срабатывает так быстро, что я не могу открыть Инспектор до того, как Chrome уже отключит всплывающее окно со сценарием, который мне нужно отладить.

Я прочитал документацию Google и установка точек останова прекрасно работает, но точки останова срабатывают только в том случае, если открыт Инспектор.

Я попытался использовать debugger;, который я нашел в этом ответ SA, но еще раз , он срабатывает только в том случае, если Inspector открыт.

Просто для отладки я также попытался установить функцию «сна» (которая потребляет процессор, плохо и т. д.) следующим образом:

function sleep(milliSeconds){
var startTime = new Date().getTime(); // get the current time
while (new Date().getTime() < startTime + milliSeconds); // hog cpu
}

sleep(5000);

Это тоже не сработало.

Есть ли способ заставить инспектора открываться с помощью кода? Если нет, то как лучше всего это отладить? Спасибо.


person Joshua Dance    schedule 07.02.2014    source источник
comment
этот метод сна — отличный способ полностью сломать ваш браузер   -  person markasoftware    schedule 08.02.2014
comment
Я знаю. Я пробовал все, что мог придумать. И, как было отмечено, это НЕ сработало. :)   -  person Joshua Dance    schedule 08.02.2014
comment
возможно, вы должны поместить весь код в открытое окно внутри setTimeout, чтобы он подождал...   -  person markasoftware    schedule 08.02.2014
comment
Можно ли использовать Firefox+Firebug?   -  person vmg    schedule 08.02.2014
comment
Мы делаем большую часть нашей работы в Chrome, так как его используют наши клиенты, но я мог бы использовать его для тестирования. Я посмотрю на это. Спасибо Виталий.   -  person Joshua Dance    schedule 12.02.2014


Ответы (1)


Я боролся с этой проблемой весь день и, наконец, нашел решение. Просто поместите предупреждение в свой код перед состоянием отладчика:

alert('Time to attach the debugger');
debugger;

Когда предупреждение появится на экране, просто нажмите ссылку «проверить» в Chrome Inspector. Инспектор прикрепится к вашей странице, после чего вы сможете нажать «ОК» в окне предупреждения, чтобы продолжить. Затем он остановится на операторе отладчика

person Kesty    schedule 19.10.2015