Je suis en train de déboguer du Javascript minifié tiers qui quelque part déclenche une actualisation de la page du navigateur. Cependant, je ne peux pas comprendre quelle partie du code provoque l'actualisation.
Existe-t-il un moyen de mettre un point d'arrêt dans Chrome qui sera atteint juste avant une actualisation de page afin que je puisse inspecter la pile d'appels pour voir ce qui l'a causé?
Essaye ça:
beforeunload
et unload
Voyez si cela aide; capture d'écran ci-dessous.
Edit: Alternativement, si cela ne fonctionne pas, vous pouvez utiliser Chrome pour rechercher tous les scripts chargés pour le code qui pourrait être responsable. Il y a apparemment beaucoup de façons d'actualiser le page avec JavaScript mais ils ont principalement quelques chaînes communes comme "navigateur", "emplacement", "recharger", "fenêtre".
Enfin, s'il existe un lien vers la même page que celle sur laquelle vous vous trouvez, il est possible que certains JS déclenchent un clic dessus - peu probable, mais mérite d'être exploré si rien d'autre n'a fonctionné jusqu'à présent ...
(Veuillez excuser le formatage car je suis sur mobile ...)
Dans Firefox (pas Chrome, c'est important) Developer Tools, allez dans la console, entrez addEventListener('beforeunload',()=>{debugger})
, et exécutez votre code. Une fois que le débogueur s'arrête à l'instruction debugger
, examinez la pile des appels. Vous verrez ce qui a déclenché l'événement. Chrome ne l'avait pas là.
Au moins, cela a fonctionné pour moi.
Dans le devtool, volet réseau, basculez le "Conserver le journal", vérifiez soigneusement la colonne de l'initiateur.
Vous ne spécifiez pas ce que fait la bibliothèque tierce. S'il s'agit d'un composant d'interface utilisateur comme une annonce ou quelque chose de similaire, placez-le simplement dans un iframe
avec l'attribut sandbox
configuré selon vos besoins . https: //developer.mozilla. org/en/docs/Web/HTML/Element/iframe (Faites défiler la page jusqu'à la section d'attribut sandbox)
S'il s'agit d'un événement déclenché par un événement, utilisez simplement (dans chrome uniquement) la fonction getEveneListener () et suivez la piste listener
... (difficile, mais possible ) Exemple:
La propriété d'écoute vous mènera aux fonctions réelles qui seront appelées. Vous pouvez alors les rechercher dans le code obscurci et ajouter un débogueur pour comprendre son objectif.
Il existe de nombreux autres scénarios - si vous pouvez en spécifier davantage.