J'utilise .htaccess pour acheminer tout mon trafic vers un seul fichier index.php. Le code ci-dessous dirige le trafic, mais pour une raison quelconque, il ne fonctionne pas avec le bouton de retour. Je ne sais pas quoi faire pour que le bouton de retour fonctionne. J'ai essayé une variété de choses et googlé un peu et rien n'a fonctionné, donc j'espère que quelqu'un ici peut aider!
<?php
if(isset($_GET['parameters'])) {
if($_GET['parameters'] == "repair")
include 'repair.html';
else if($_GET['parameters'] == "training")
include 'training.html';
else if($_GET['parameters'] == "products")
include 'products.html';
else if($_GET['parameters'] == "about")
include 'about.html';
else if($_GET['parameters'] == "employees")
include 'employees.html';
else if($_GET['parameters'] == "training")
include 'training.html';
else if($_GET['parameters'] == "newaccount")
include 'newaccount.html';
else if($_GET['parameters'] == "contact")
include 'contact.html';
else if($_GET['parameters'] == "recommended")
include 'recommended.html';
else if($_GET['parameters'] == "careers")
include 'careers.html';
else
include 'home.html';
}
else
include 'home.html';
?>
Jusqu'à présent, j'ai essayé et échoué à utiliser: window.onbeforeunload
body onunload=""
Il doit y avoir un moyen de onunload=location.reload()
ou quelque chose! Il faut en quelque sorte connaître la syntaxe !!
Essayez ceci ... non testé. J'espère que cela fonctionnera pour vous.
Créez un nouveau fichier php. Vous pouvez utiliser les boutons Précédent et Suivant et le numéro/horodatage de la page est toujours mis à jour.
<?php
header("Cache-Control: no-store, must-revalidate, max-age=0");
header("Pragma: no-cache");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
echo time();
?>
<a href="http://google.com">aaaaaaaaaaaaa</a>
O
trouvé une autre solution
L'événement onload doit être déclenché lorsque l'utilisateur appuie sur le bouton de retour. Les éléments non créés via JavaScript conserveront leurs valeurs. Je suggère de conserver une sauvegarde des données utilisées dans l'élément créé dynamiquement dans un INPUT TYPE = "caché" défini pour afficher: aucun, puis onload en utilisant la valeur de l'entrée pour reconstruire les éléments dynamiques comme ils étaient.
<input type="hidden" id="refreshed" value="no">
<script type="text/javascript">
onload=function(){
var e=document.getElementById("refreshed");
if(e.value=="no")e.value="yes";
else{e.value="no";location.reload();}
}
Une solution plus récente utilise L'interface PerformanceNavigation :
if(!!window.performance && window.performance.navigation.type === 2)
{
console.log('Reloading');
window.location.reload();
}
Où la valeur 2 signifie "La page a été accessible en naviguant dans l'historique".
Voir le support du navigateur ici: http://caniuse.com/#search=Navigation%20Timing%20API
Recharger le site lorsque vous êtes atteint via le bouton de retour des navigateurs
La solution d'entrée cachée ne fonctionnait pas pour moi dans Safari. La solution ci-dessous fonctionne et provient de ici .
window.onpageshow = function(event) {
if (event.persisted) {
window.location.reload()
}
};
J'ai trouvé deux façons de gérer cela. Choisissez le meilleur pour votre cas. Solutions testées sur Firefox 53 et Safari 10.1
1. Détectez si l'utilisateur utilise le bouton arrière/avant, puis rechargez la page entière
if (!!window.performance && window.performance.navigation.type === 2) {
// value 2 means "The page was accessed by navigating into the history"
console.log('Reloading');
window.location.reload(); // reload whole page
}
2. recharger la page entière si la page est mise en cache
window.onpageshow = function (event) {
if (event.persisted) {
window.location.reload();
}
};
Cette solution simple publiée ici Forcer l'actualisation de la page sur le bouton de retour a fonctionné ...
J'ai essayé de forcer le téléchargement d'une page à nouveau par le navigateur lorsque l'utilisateur clique sur le bouton Retour, mais rien n'a fonctionné. Il semble que les navigateurs modernes disposent d'un cache séparé pour les pages, qui stocke l'état complet d'une page (y compris les éléments DOM générés par JavaScript), donc lorsque les utilisateurs appuient sur le bouton de retour, la page précédente s'affiche instantanément dans l'état où l'utilisateur l'a quittée. Si vous souhaitez forcer le navigateur à recharger la page sur le bouton de retour, ajoutez onunload = "" à votre élément de corps (X) HTML:
<body onunload="">
Cela désactive le cache spécial et force le rechargement de la page lorsque l'utilisateur appuie sur le bouton de retour. Réfléchissez bien avant de l'utiliser. Le fait d'avoir besoin d'une telle solution est un indice que votre concept de navigation sur le site est défectueux.
avez-vous essayé quelque chose comme ça? pas testé...
$(document).ready(function(){
$('.ajaxAnchor').on('click', function (event){
event.preventDefault();
var url = $(this).attr('href');
$.get(url, function(data) {
$('section.center').html(data);
var shortened = url.substring(0,url.length - 5);
window.location.hash = shortened;
});
});
});
Vous pouvez utiliser ce qui suit pour actualiser la page en cliquant sur le bouton de retour:
window.addEventListener('popstate', () => {
location.reload();
}, false);
Tout d'abord, insérez un champ dans votre code:
<input id="reloadValue" type="hidden" name="reloadValue" value="" />
puis exécutez jQuery:
<script type="text/javascript">
jQuery(document).ready(function()
{
var d = new Date();
d = d.getTime();
if (jQuery('#reloadValue').val().length === 0)
{
jQuery('#reloadValue').val(d);
jQuery('body').show();
}
else
{
jQuery('#reloadValue').val('');
location.reload();
}
});