Есть ли способ получить источник окна предупреждения?
Я работаю с очень большими и запутанными файлами JavaScript, которые я не писал. Иногда появляется предупреждение, но я не знаю, откуда оно.
Вы можете искать все файлы для текста, содержащегося в предупреждении, но если этот текст является динамическим, он не будет работать.
Есть ли способ установить точку останова для перехвата предупреждения?
Ответы
Ответ 1
На самом верху вашего HTML:
window.alert = function() {
debugger;
}
debugger
- это оператор, который вызывает любую доступную функциональность отладки. Когда инструменты разработчика открыты, вы автоматически ударяете точку останова при вызове alert
. Затем вы можете проверить стек вызовов, чтобы точно увидеть, что называется пользовательской функцией alert
.
Ответ 2
Он может или не может быть вам полезен, но вы можете перезаписать функцию alert
, чтобы делать с ней все, что вам нужно. Например, вместо предупреждающих ящиков вы могли бы зарегистрировать это сообщение на консоли.
window.alert = function(msg) {
console.log(msg);
}
alert('test');
Ответ 3
Откройте Chrome, нажмите клавишу F12
и перейдите к Sources
.
Затем выберите script файл Ctrl+F
и найдите предупреждение.
Вы можете поставить точку останова на любую строку, которую вы хотите
Ответ 4
Я согласен с Брайаном Глазом, но для того, чтобы получить более подробную информацию (номер строки), вы можете попытаться выбросить ошибку при получении предупреждения и вывести ошибку на консоли. таким образом, консоль укажет вам номер правой строки, где была вызвана функция предупреждения.
Поместите этот фрагмент вверху документа и попробуйте:
var originalAlert = window.alert;
window.alert = function(){
try{
throw new Error('alert was called');
} catch(e){
console.warn(e);
}
return originalAlert.apply(window, arguments);
}