103 votes

Interrompre le javascript avant une redirection javascript en ligne dans Chrome

Je consulte une page qui comporte une redirection javascript en ligne ( window.location = "/anotherpage" ). Je veux charger la page dans Chrome mais avoir la ligne de redirection désactivée, afin que je puisse utiliser la page sans être redirigé ailleurs.

Voici ce que j'ai essayé :

  • Outils du développeur -> Cog -> Général -> Désactiver JavaScript. Chargez la page. Il n'y a pas de redirection (yay !). Mais je veux toujours que le reste du javascript de la page s'exécute, et il ne l'a pas fait.

  • Tapez l'URL, puis cliquez sur Outils du développeur -> Sources -> Pause (F8) très rapidement ! Maintenant, je veux désactiver la ligne de redirection avant d'annuler la pause, mais cette partie n'a pas encore été chargée dans Developer Tools. Je vais donc commencer à parcourir le code javascript des autres fichiers jusqu'à ce que j'y parvienne ? Mais dès que je sors du code javascript des autres fichiers, il y a une redirection immédiate (doh !).

Cela peut-il être fait ? Je pensais qu'il serait facile de désactiver une ligne de javascript, mais je suis dans l'impasse.

157voto

vsevik Points 2600

Outils du développeur -> Sources -> Points d'arrêt de l'écouteur d'événements (sur la barre latérale droite) -> Chargement -> vérifier le déchargement.

Cela permettra au débogueur de s'arrêter sur l'événement de déchargement qui est envoyé avant la navigation.

52voto

aWebDeveloper Points 5546

Faites ce qui suit

  1. Ouvrir Outils pour les développeurs
  2. Aller à Sources onglet
  3. Cherchez Points d'arrêt de l'écouteur d'événements
  4. Développez Chargement option
  5. Vérifiez ici décharger option

Chrome unload breakpoint

12voto

Adam Wallner Points 476

J'ai une bibliothèque JS tierce partie, qui a eu une mauvaise condition pour recharger la page. Et la page a été rechargée continuellement à cause de cela. J'ai essayé de trouver où se trouve le mauvais code.

J'ai essayé d'utiliser la méthode "Event Listener Breakpoints", mais comme un commentaire l'a dit, il n'y a pas de trace de pile dans les événements de déchargement, donc c'est plutôt inutile.

Le site 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 mettre mon site dedans. De cette façon, les erreurs de sécurité se produiront dans chrome et la console montre où le JS tente d'accéder à l'objet de localisation. Vous pouvez cliquer dessus et voir le code. Le meilleur est que Chrome a un décompresseur JS (le bouton {} en bas à gauche de la fenêtre source), qui est intelligent, peut montrer la ligne même après l'impression jolie, de sorte que vous pouvez le voir même dans JS compressé.

Plus d'informations sur les propriétés du bac à sable : https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X