window.onload не переопределяет функцию прототипа

#javascript

#javascript

Вопрос:

Когда я пытаюсь создать HTTP-регистратор для веб-сайта, мне нужно перезаписать окно.Функция XMLHttpRequest.prototype.open для получения всех HTTP-запросов и их регистрации. Однако, когда я пытаюсь перезаписать функцию в функции window.onload, код не работает.

Функция, включающая window.onload:

 window.onload = function() {
   let oldXHROpen = window.XMLHttpRequest.prototype.open;
   window.XMLHttpRequest.prototype.open = function(
      method,
      url,
      async,
      user,
      password
   ) {
      console.log(this);
      oldXHROpen.apply(this, arguments);
      this.addEventListener("load", function() {
         let json = JSON.parse(this.responseText);
         console.log(json);
      });
   };
};
  

Это работает не так, как я хочу, потому что он не регистрирует сделанные HTTP-запросы. Однако, когда я публикую следующий код в терминале, он работает:

 let oldXHROpen = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function(
   method,
   url,
   async,
   user,
   password
) {
   console.log(this);
   oldXHROpen.apply(this, arguments);
   this.addEventListener("load", function() {
      let json = JSON.parse(this.responseText);
      console.log(json);
   });
};
  

Я ожидаю, что первая функция window.onload перезапишет окно.Метод XMLHttpRequest.prototype.open и что он регистрирует все HTTP-запросы на консоль.