Comment empêcher la page de rafraîchissement de Chrome lors de la visualisation de la source?

Lors de la visualisation de la source de la page dans Google Chrome, le navigateur ouvre un nouvel onglet et colle essentiellement l'URL avec le préfixe view-source: :. Ceci n'est pas souhaitable.

En tant que développeur, je peux inclure une sortie de diagnostic qui n'est visible que dans la source après avoir soumis un formulaire. Lorsque Chrome Actualise la page pour afficher la source, elle rend cette information disparaître.

Est-il possible de prévenir ce comportement?

Remarque: Je connais l'option "Inspect Element". Ce n'est tout simplement pas un support adéquat pour afficher la source de la page brut de la page exacte que vous regardez.


Un script de test rapide

 <pre> <?= print_r($_POST, true) ?> </pre> <form action="" method="post"> <input id="foo" name="foo" value="bar" /> <input type="submit" /> </form> 

Après avoir cliqué sur le bouton Soumettre, la page montre

 Array ( [foo] => bar ) 

Si vous voyez la source de la page, vous verrez une sortie $_POST vide

 <pre> Array ( ) </pre> <form action="" method="post"> <input id="foo" name="foo" value="bar" /> <input type="submit" /> </form> 

Mettre à jour

Apparemment, ce bogue a déjà été soumis. Soupir…

Si quelqu'un sait un bon travail, j'apprécierais beaucoup.

À partir de la page de rapport de bogue, la solution de contournement mentionnée dans le commentaire 12 fonctionne: dans les outils de développement, activez le suivi des ressources. (Si elle était désactivée, elle permet de soumettre de nouveau la requête qui a généré la page actuellement visible, soit POST ou GET.) Dans la liste des ressources, vous pouvez cliquer sur la page principale pour voir le code source tel qu'il a été retourné par Pour les demandes POST et GET.

Entrez la description de l'image ici

Entrez la description de l'image ici

Entrez la description de l'image ici

Entrez la description de l'image ici

Entrez la description de l'image ici

Plus d'information

J'ai exécuté quelques tests en utilisant un fichier php simple qui a montré la méthode de demande utilisée et une valeur POSTed, un journal de serveur proxy pour voir quelles demandes Chrome a été faite, et le chrome://net-internals/view-cache/ prefix pour voir quoi Chrome était en cache.

Lorsque vous utilisez la commande View Source, Chrome affiche la source de sa version mise en cache de la page, et elle ne cache que les pages demandées via la méthode GET.

Si vous regardez une page que vous avez déjà demandée en utilisant GET et POST, seule la version GET est mise en cache. L'utilisation de la commande View Source ne ré-demande pas la page, mais montrera la version GET en cache, et non la version POST actuellement visible, le cas échéant.

Si vous regardez une page que vous avez demandée uniquement en utilisant la méthode POST, l'utilisation de la commande View Source amènera Chrome à chercher dans son cache, à ne rien trouver, à demander la page à l'aide de GET, à la mettre en cache et à afficher la source de ça.

Bonne question – et un peu décevant de lire tous ces commentaires «ce qui ne va pas» ou «cela ne fonctionnera pas». Ce comportement rend la fonctionnalité "Afficher la source de la page" inutile pour le développement dans de nombreux cas.

Il y a une extension appelée « Quick source viewer », qui semble afficher la source de la page actuellement chargée (je ne l'ai pas encore testé avec les requêtes POST).

Je suis désolé de vous le dire, mais cela est contraire à la nature actuelle de la navigation et du débogage dans un navigateur …

La source d'origine n'est pas conservée en mémoire, mais elle est analysée et transformée en un arbre d'analyse aussi vite que possible, ce qui permet d'éviter une utilisation inutile de la mémoire. Ainsi, toute information de débogage que vous cachez dans la source est perdue et doit être explicitement demandée. Dans les sites dits Web 2.0, les éléments changent également et c'est la raison pour laquelle l'inspection est comme ça …

Solution 1: Fiddler Web Debugger vous permet d'inspecter le trafic HTTP,
Cela vous permet de voir les informations de débogage à partir de votre dernière demande.

Solution 2: Intégrez vos informations de débogage ou ajoutez-le à la fin,
Ou peut-être le montrer en tant que pop-up ou d'une autre manière géniale qui ne dérange pas votre mise en page.