Подтвердить что ты не робот

Есть ли способ получить источник окна предупреждения?

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

Вы можете искать все файлы для текста, содержащегося в предупреждении, но если этот текст является динамическим, он не будет работать.

Есть ли способ установить точку останова для перехвата предупреждения?

4b9b3361

Ответ 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);
}