FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WEBDEV 2024
→
beforeunload
beforeunload
Débuté par Arriety, 12 mar. 2021 16:13 - 3 réponses
Connectez-vous…
Arriety
#1
Posté le 12 mars 2021 - 16:13
Bonjour à tous,
je viens vers vous car je bloque sur un problème qui semble bien simple.
Objectif : faire en sorte que le navigateur affiche un message à l'utilisateur quand celui-ci quitte le site en fermant le navigateur. En somme ça lui dit que ses données non sauvegardées vont être perdues.
ça se fait assez facilement avec le bout de code suivant, que je place dans l'initialisation de ma page :
MaPage..HTMLFinPage += [
<script>
window.onbeforeunload = function(e) {
return 'Vous allez perdre vos modifications.';
};
</script>
]
Problème : Le message s'affiche également quand on navigue d'une page à l'autre du même site. Comportement normal, mais dans mon cas je souhaite afficher ce message que sur la fermeture du navigateur.
En complétant mon code comme ceci cela devrait marcher :
<script>
window.onbeforeunload = function(e) {
return 'Vous allez perdre vos modifications.';
};
var myForm = document.getElementsByTagName("form");
myForm[0].addEventListener('submit', plusDeMessage);
function plusDeMessage()
{
window.onbeforeunload = null;
};
</script>
Mais il n'en est rien :/.
Quelqu'un aurait-il une idée ?
Merci
Signaler
0
0
Tristan
#2
Membre enregistré
33 messages
Posté le 17 janvier 2022 - 19:37
Bonjour,
J'ai aussi essayé ce type de procédure, qui est d'ailleurs utilisée dans l'exemple "HONOLULU", mais cela ne fonctionne pas.
D'ailleurs dans le site HONOLULU, il y a un code dans l'évènement "Fermeture du projet" qui est exécuté lorsque l'on ferme le navigateur.
Alors que dans mon projet, le code de fermeture du projet est lancé et arrêté presque instantanément après, donc le code ne s'exécute pas.
Des idées ?
Avez-vous réussi à trouver une solution ?
Merci.
Signaler
0
0
Arriety
#3
Posté le 18 janvier 2022 - 09:39
Bonjour, rien de plus concernant ce sujet pour moi.
Concernant votre event "fermeture de projet", celui-ci ne se déclenche que sur le timeout de session.
Si vous avez paramétré vos sessions avec une durée de vie de 10 minutes il faudra donc attendre au max 10 minutes pour rentrer dedans
Signaler
0
0
Poncherello
#4
Membre enregistré
324 messages
Popularité : +21 (51 votes)
Posté le 19 janvier 2022 - 10:34
Bonjour,
Il vous faut gérer dynamiquement l'ajout de la fonction dans la source html de la page via de l'ajax.
Imaginons une case à cocher qui permet ou non l'affichage du message, cocher ca mets l'alerte, non cocher ca ne l'affiche pas
Dans le code l'interrupteur au retour de AJAX, en mode JS on peut mettre ce code
window.onbeforeunload
=
this.checked
?
function
(
)
{
return
"Are you sure ?"
} :
undefined
;
En gros le principe est d'aller modifier en temps réel et au besoin le contenu du window.onbeforeunload
soit avec une fonction function(){return "Are you sure ?"} soit avec "undefined"
Donc à vous de gérer les cas où la fonction doit être active et les moments ou elle passe en undefined.
Y'a plein de façon de faire, c'en est une parmi tant d'autre, je connais pas grand chose en javascript, peut-être certains trouverons ma solution idiote, mais ça fonctionne ^^
Signaler
0
0
→ Revenir à WEBDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte