de la fenêtre.onbeforeunload ne fonctionne pas sous chrome
C'est le code que j'ai utilisé pour la fenêtre.onbeforeunload......
<head>
<script>
window.onbeforeunload = func;
function func()
{
var request = new XMLHttpRequest();
request.open("POST", "exit.php", true);
request.onreadystatechange = stateChanged;
request.send(null);
}
function stateChanged()
{
if (request.readyState == 4 || request.readyState == "complete")
alert("Succes!");
}
</script>
</head>
cela fonctionne avec IE et mozila, mais ne fonctionne pas avec google chrome..... s'il vous plaît aider......
merci d'avance.....
Voir stackoverflow.com/questions/7389554/crossbrowser-onbeforeunload
6 Réponses et aucun d'eux fournit un recommandé autres méthode fiable d'obtenir le même effet de la croix-navigateur. Non, l'injection ou la surcharge des "beforeunload" n'est pas une bonne alternative - c'est juste en contournant le problème.
6 Réponses et aucun d'eux fournit un recommandé autres méthode fiable d'obtenir le même effet de la croix-navigateur. Non, l'injection ou la surcharge des "beforeunload" n'est pas une bonne alternative - c'est juste en contournant le problème.
OriginalL'auteur siddhesh | 2011-01-26
Vous devez vous connecter pour publier un commentaire.
Il semble que la seule chose que vous pouvez faire avec onbeforeunload au cours des dernières version de Chrome est de définir le message d'avertissement.
Fonctionne. Autre code dans la fonction semble être ignoré par google Chrome
Mise à JOUR: Chrome V51, la chaîne retournée sera ignorée et un message par défaut affichée à la place.
return "are you sure";
à l'intérieur d'unif
déclaration, Chrome ignore que trop.Que faire si vous placez
window.onbeforeunload = function () { return "Are you sure"; };
à l'intérieur de la si ?Aidez-moi... comment/quand vous exécutez le si? Sur le document de charge?
Oui. Ou si vous le site est généré de manière dynamique (PHP ou autre langage), vous pourriez probablement injecter le script avec onbeforeunload uniquement lorsque le bvrowser n'est pas Chrome.
OriginalL'auteur LapinLove404
Sais je suis en retard, mais a me gratter la tête pourquoi mon custom beforeunload message n'a pas de travail dans google Chrome, et a la lecture de ce. Donc, au cas où quelqu'un d'autre fait la même, google Chrome à partir de la Version à partir de 51 ne prend plus en charge les messages personnalisés sur beforeunload. Apparemment, c'est parce que la fonctionnalité a été abusé par des arnaques diverses. Au lieu de cela, vous obtenez un prédéfini Chrome message qui peuvent ou peuvent ne pas convenir à vos besoins. Plus de détails sur:
https://developers.google.com/web/updates/2016/04/chrome-51-deprecations?hl=en#remove-custom-messages-in-onbeforeload-dialogs
Ne pense pas personnellement le message qu'ils ont choisi est un grand qu'il mentionne de quitter le site et l'un des plus commun utilisations légitimes pour onbeforeunload est pour l'indicateur de changement de traitement/contrôle sur un formulaire web de sorte qu'il n'est pas un grand texte de la beaucoup de la fois que l'utilisateur sera toujours sur votre site, il suffit d'avoir cliqué sur annuler ou de bouton de rechargement par erreur.
OriginalL'auteur Clarkio
Confirmé l'existence de ce problème sur chrome 21.0.1180.79
cela semble fonctionner avec la même restritions que XSS, si vous actualisez la page ou ouvrez une page sur le même domaine+port la le script est exécuté, sinon elle ne sera exécutée que si vous êtes de retour d'une chaîne (ou similaires) et une boîte de dialogue sera affichée demandant à l'utilisateur s'il veut se penche ou de rester à la page.
c'est un incroyable chose stupide à faire, parce que onunload/onbeforeunload ne sont pas seulement utilisés à poser ou à éviter les changements de page.
Dans mon cas je l'utilise trop d'économiser quelques modifications faites lors de l'édition de page et je ne veux pas empêcher l'utilisateur de modifier la page (à moins de chrome doit respecter un qui renvoie true ou changer de page sans se demander si le retour n'est pas une chaîne de caractères), un script s'exécutant des restrictions de temps serait assez.
C'est particulièrement gênant dans chrome parce que l'événement onblur n'est pas envoyé à des éléments de montage lors du déchargement d'une page, google chrome simplement igores le courant de page et les sauts à l'autre. Donc, la seule modification de l'enregistrement des modifications a été le processus de déchargement et à présent, il ne peut pas être fait sans la question STUPIDE, si l'utilisateur veut changer... bien sûr qu'il veut et je ne voulais pas de prévenir que...
espère chrome résout ce de manière plus élégante bientôt.
OriginalL'auteur neu-rah
Essayer cela, il a travaillé pour moi:
OriginalL'auteur harisrozak
Vous devriez essayer ceci:
Cela fonctionne sur la dernière version de Chrome. Nous avons eu le même problème la
e.returnValue
avec la valeur deonbeforeunload
résolu mon problème.Votre code devrait ressembler à ceci:
OriginalL'auteur Richard
De l'essayer. Je l'ai essayé et il fonctionne. Intéressant, mais le Succès de message n'a pas besoin de confirmation comme l'autre message.
OriginalL'auteur Bakudan
Versions actuelles de Chrome exiger la mise à l'événement
returnValue
de la propriété. Simplement de retourner une chaîne de caractères à partir du gestionnaire d'événement ne sera pas déclencher l'alerte.OriginalL'auteur Jeremy Danyow
Je suis sous google Chrome sur MacOS High Sierra et ont Angulaire 6 projet whithin j'ai la poignée de la fenêtre.beforeunload une fenêtre.onbeforeunload événements. Vous pouvez faire cela, il a travaillé pour moi :
Il me montre un message d'erreur quand j'essaie de mettre une chaîne de caractères dans l'événement.returnValue, il veulent une booléenne.
OriginalL'auteur Dorian Maliszewski