Je consulte une page contenant une redirection javascript en ligne (window.location = "/anotherpage"
). Je souhaite charger la page dans Chrome mais la ligne de redirection est désactivée, je peux donc utiliser la page sans être redirigé).
Voici ce que j'ai essayé:
Outils de développement -> Cog -> Général -> Désactiver JavaScript. Chargez la page. Il ne redirige pas (yay!). Mais je veux toujours que le reste du javascript de la page s'exécute, et ce n'est pas le cas.
Tapez l'URL, puis cliquez sur Outils de développement -> Sources -> Pause (F8) très rapidement! Il n'a pas encore redirigé (yay!) Maintenant, je veux désactiver la ligne de redirection avant de la suspendre, mais cette partie n'a même pas encore été chargée dans Developer Tools. Je vais donc commencer à parcourir le code javascript des autres fichiers jusqu'à ce que j'y arrive ?? Mais dès que je sors des autres fichiers javascript, il redirige immédiatement (doh!).
Cela peut-il être fait? Je pensais qu'il devrait être facile de désactiver une ligne de javascript, mais je suis perplexe.
Outils de développement -> Sources -> Points d'arrêt de l'écouteur d'événements (dans la barre latérale droite) -> Charger -> vérifier le déchargement
Cela provoquera une interruption du débogueur lors de l'événement de déchargement qui est distribué avant la navigation.
J'ai une bibliothèque JS tierce, qui a eu une mauvaise condition pour recharger la page. Et la page a été rechargée en continu à cause de cela. J'ai essayé de trouver le mauvais code.
J'ai essayé d'utiliser la méthode "Event Listener Breakpoints", mais comme un commentaire l'a dit, vous n'avez pas de trace de pile dans les événements de déchargement, donc c'est assez inutile.
La solution qui a fonctionné pour moi: j'ai créé une page avec une balise iframe avec l'attribut sandbox, par ex. <iframe sandbox="allow-same-Origin allow-scripts allow-popups allow-forms"></iframe>
et y mettre mon site. De cette façon, des erreurs de sécurité se produiront à l'intérieur de chrome et la console indique où JS essaie d'accéder à l'objet de localisation. Vous pouvez cliquer dessus et voir le code. Le mieux est Chrome possède un décompresseur JS (le bouton {} en bas à gauche de la fenêtre source), qui est intelligent, peut afficher la ligne même après une jolie impression, vous pouvez donc la voir même dans JS compressé.
Plus d'informations sur la propriété sandbox: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox