Je veux faire une confirmation avant que l'utilisateur ne quitte la page. S'il dit ok, il redirigerait vers une nouvelle page ou annulerait pour quitter. J'ai essayé de le faire avec onunload
<script type="text/javascript">
function con() {
var answer = confirm("do you want to check our other products")
if (answer){
alert("bye");
}
else{
window.location = "http://www.example.com";
}
}
</script>
</head>
<body onunload="con();">
<h1 style="text-align:center">main page</h1>
</body>
</html>
Mais ça confirme après la page déjà fermée? Comment le faire correctement?
Ce serait encore mieux si quelqu'un montre comment le faire avec jQuery?
Réponses:
onunload
(ouonbeforeunload
) ne peut pas rediriger l'utilisateur vers une autre page. C'est pour des raisons de sécurité.Si vous souhaitez afficher une invite avant que l'utilisateur ne quitte la page, utilisez
onbeforeunload
:Ou avec jQuery:
Cela demandera simplement à l'utilisateur s'il veut quitter la page ou non, vous ne pouvez pas le rediriger s'il choisit de rester sur la page. S'ils choisissent de quitter, le navigateur ira là où il leur a dit d'aller.
Vous pouvez utiliser
onunload
pour faire des choses avant le déchargement de la page, mais vous ne pouvez pas rediriger à partir de là (Chrome 14+ bloque les alertes à l'intérieuronunload
):Ou avec jQuery:
la source
onbeforeunload
, le navigateur place cette chaîne dans sa propre boîte de confirmation. L'utilisationconfirm
est inutile dansonunload
etonbeforeunload
, parce que seul le navigateur peut contrôler où il va, pas vous. Découvrez cette démo: jsfiddle.net/3kvAConbeforeunload
,return false
le navigateur affichera "false" dans une boîte de dialogue. Vous devez le fairereturn undefined
si vous souhaitez laisser la fenêtre se fermer sans alerte utilisateur.Ce code lorsque vous détectez également que l'état du formulaire a changé ou non.
Vous pouvez utiliser la fonction de sérialisation du formulaire Google JQuery, cela collectera toutes les entrées du formulaire et l'enregistrera dans le tableau. Je suppose que cela explique assez :)
la source
Cela vous alertera en quittant la page actuelle
la source
Voici ce que j'ai fait pour afficher le message de confirmation au moment où j'ai des données non enregistrées
renvoyer "indéfini" désactivera la confirmation
Remarque: renvoyer "null" ne fonctionnera pas avec IE
Vous pouvez également utiliser "non défini" pour désactiver la confirmation
la source
Pour avoir un popop avec Chrome 14+, vous devez procéder comme suit:
Il sera demandé à l'utilisateur s'il souhaite rester ou partir.
la source
jQuery(document)
et je suggère de le mettre juste après que tous vos plugins soient chargés. De plus, cet extrait ne fait aucune alerte ... c'est seulement une démo avecreturn
.Vous pouvez utiliser le one-liner suivant pour toujours demander à l'utilisateur avant de quitter la page.
Pour demander à l'utilisateur lorsqu'un élément de la page a été modifié, consultez cette réponse .
la source
Normalement, vous souhaitez afficher ce message lorsque l'utilisateur a apporté des modifications dans un formulaire, mais elles ne sont pas enregistrées.
Adoptez cette approche pour afficher un message, uniquement lorsque l'utilisateur a modifié quelque chose
la source
https://www.w3schools.com/tags/ev_onbeforeunload.asp
la source
La plupart des solutions ici n'ont pas fonctionné pour moi, j'ai donc utilisé celle trouvée ici
J'ai également ajouté une variable pour autoriser ou non la case de confirmation
la source
Un peu plus utile, activez et désactivez
la source