Comment savoir dans Firefox si l'on clique sur le bouton d'actualisation ou sur le bouton Précédent du navigateur ... pour les deux événements, la méthode onbeforeunload()
est un rappel. Pour IE je gère comme ceci:
function CallbackFunction(event) {
if (window.event) {
if (window.event.clientX < 40 && window.event.clientY < 0) {
alert("back button is clicked");
}else{
alert("refresh button is clicked");
}
}else{
// want some condition here so that I can differentiate between
// whether refresh button is clicked or back button is clicked.
}
}
<body onbeforeunload="CallbackFunction();">
Mais dans Firefox event.clientX et event.clientY sont toujours égaux à 0. Existe-t-il un autre moyen de le trouver?
Utiliser pour l'actualisation de l'événement
window.onbeforeunload = function(e) {
return 'Dialog text here.';
};
Et
$(window).unload(function() {
alert('Handler for .unload() called.');
});
Utilisez 'event.currentTarget.performance.navigation.type' pour déterminer le type de navigation. Cela fonctionne dans IE, FF et Chrome.
function CallbackFunction(event) {
if(window.event) {
if (window.event.clientX < 40 && window.event.clientY < 0) {
alert("back button is clicked");
}else{
alert("refresh button is clicked");
}
}else{
if (event.currentTarget.performance.navigation.type == 2) {
alert("back button is clicked");
}
if (event.currentTarget.performance.navigation.type == 1) {
alert("refresh button is clicked");
}
}
}
Pour le bouton Précédent dans jquery // http://code.jquery.com/jquery-latest.js
jQuery(window).bind("unload", function() { //
et en html5 il y a un événement L'événement s'appelle 'popstate'
window.onpopstate = function(event) {
alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
};
et pour l'actualisation, veuillez vérifier Vérifiez si la page est rechargée ou actualisée en Javascript
Dans Mozilla, Client-x et client-y se trouvent dans la zone de document https://developer.mozilla.org/en-US/docs/Web/API/event.clientX