web-dev-qa-db-fra.com

Comment savoir où l'alerte est soulevée?

Je suis juste curieux de savoir
[.____] Y a-t-il des moyens dans un navigateur de savoir où l'alerte que je reçois est soulevée?

Je l'ai essayé en chrome mais il n'y a pas de pile d'appels disponible lors de l'alerte.

Une idée?

51
Mo Valipour

Vous pouvez écraser alert et créer un Error pour la trace de la pile:

var old = alert;

alert = function() {
  console.log(new Error().stack);
  old.apply(window, arguments);
};
99
pimvdb

Vous pouvez sonneryyyPatch l'alerte pour le faire:

//put this at the very top of your page:
window.alert = function() { throw("alert called") }
4
Herberth Amaral

Il y a une fonction de trace est la console fournie par tous les grands navigateurs. (( console.Trace ();

Avec une approche proxy, comme décrit dans les réponses antérieures et la console.Trace (), nous pouvons imprimer toute la pile avec numéro de ligne dans la console elle-même.

(function(proxied) {
  window.alert = function() {
        console.trace();
    return proxied.apply(this, arguments);
  };
})(window.alert);

Ceci est une vie. Chaque appel d'alerte aura sa trace imprimée dans la console.

1
Aswin