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?
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);
};
Vous pouvez sonneryyyPatch l'alerte pour le faire:
//put this at the very top of your page:
window.alert = function() { throw("alert called") }
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.