Maison > interface Web > js tutoriel > Comment puis-je déclencher de manière fiable l'événement « onload » après un clic sur le bouton Retour dans différents navigateurs ?

Comment puis-je déclencher de manière fiable l'événement « onload » après un clic sur le bouton Retour dans différents navigateurs ?

Barbara Streisand
Libérer: 2024-12-06 03:51:10
original
486 Les gens l'ont consulté

How Can I Reliably Trigger the `onload` Event After a Back Button Click Across Different Browsers?

Gestion des événements de chargement entre navigateurs après un clic sur le bouton Précédent

Lors de la navigation sur un site Web, cliquer sur le bouton Précédent ne déclenche généralement pas l'événement de chargement JavaScript dans la plupart des navigateurs, à l'exception pour Internet Explorer. Cela pose un défi pour la mise en œuvre de fonctionnalités qui s'appuient sur ces événements.

Cependant, il existe un solution multi-navigateurs qui exploite le comportement de la présence de jQuery :

<body onunload=""><!-- This triggers a page reload -->
Copier après la connexion

Ce code apparemment inoffensif oblige le navigateur à recharger la page dans Safari, Opera et Mozilla en ajoutant un écouteur d'événement onunload , quel que soit le contenu de le gestionnaire d'événements.

Pour vérifier ce comportement, veuillez utiliser le code suivant :

<body onunload="""><!-- This does the trick -->
<script type="text/javascript">
    alert('first load / reload');
    window.onload = function(){alert('onload')};
</script>
<a href="http://stackoverflow.com">click me, then press the back button</a>
</body>
Copier après la connexion

Vous constaterez qu'après avoir utilisé onunload, cliquer sur le lien puis appuyer sur le bouton de retour déclenchera le rechargement de la page. Comparez le code suivant, il n'a pas de onunload et ne se rechargera pas lors du retour :

<body><!-- Will not reload on back button -->
<script type="text/javascript">
    alert('first load / reload');
    window.onload = function(){alert('onload')};
</script>
<a href="http://stackoverflow.com">click me, then press the back button</a>
</body>
Copier après la connexion

Cette solution utilisant le comportement de jQuery peut implémenter des fonctions de type onload dans une variété de navigateurs. Lorsqu'elle est cliquée, elle est déclenchée lorsque le bouton de retour est activé. est pressé. Mais il convient de noter que cela peut ralentir le chargement des pages, sa nécessité doit donc être soigneusement étudiée avant de l'utiliser.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal