Je veux un gestionnaire d'événement qui se déclenche lorsque l'utilisateur clique sur recharger. Est onrefresh ou onreload le bon gestionnaire à ajouter ? Aussi, sera-ce encore le feu avant ou après onunload? Existe-il un navigateur incohérences? Merci.
OriginalL'auteur Sam Lee | 2009-04-10
Je ne pense pas qu'il y a des événements qu'on appelle onrefresh ou onreload. Vous pouvez savoir quand la page est en cours de déchargement, mais savoir pourquoi (c'est à dire où l'utilisateur va ensuite) est à l'extérieur de JavaScript de la sandbox de sécurité. La seule façon de savoir si la page a été rechargée est de savoir où l'utilisateur était sur la dernière page de la demande, qui est aussi hors de la portée de JavaScript. Vous pouvez parfois obtenir que via
document.referrer
, mais il s'appuie sur les paramètres de sécurité du navigateur afin d'autoriser l'accès à cette information.OriginalL'auteur Rex M
La WindowEventHandlers.onbeforeunload gestionnaire d'événement de la propriété contient le code exécuté lorsque l'beforeunload est envoyé. Cet événement se déclenche lorsqu'une fenêtre est sur le point de décharger ses ressources.
Cela fera apparaître une boîte de dialogue de confirmation à l'utilisateur avec le message de votre retour dans votre fonction. Il sera donner à l'utilisateur un congé de cette page ou de l'option annuler.
Il n'y a pas moyen de contourner le confirmer, comme il pourrait être utilisé pour des raisons malveillantes.
https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload
OriginalL'auteur tyler_mitchell
Si vous combinez la définition d'un cookie avec un pour la page spécifique, avec un chèque de l'événement onload, vous pouvez simuler l'inexistante de l'événement que vous cherchez. Vous pouvez ajuster l'expiration du cookie de sorte que le rechargement est compté seulement si le premier onload était un certain intervalle de temps auparavant.
OriginalL'auteur artlung
Il n'y a pas onreload ou onrefresh événements que je suis au courant. Certainement à partir de javascript s'exécutant dans un navigateur, ce que peu de sens. La fenêtre existante et l'ensemble de son contenu sont efficacement éliminés. Par conséquent, vous devez utiliser onunload du contexte existant ou de l'événement load du nouveau contexte qui est créé comme résultat de la recharger.
OriginalL'auteur AnthonyWJones
Je ne crois artlung peut en effet avoir trouvé un moyen, en fait... sa version, cependant, repose sur les cookies, et ceux-ci peuvent être coupés de l'usage dans de nombreuses façons; la solution est alors d'utiliser un langage côté serveur de votre choix pour enregistrer la date et l'heure lorsque la page est
unload
ed via JavaScript (encore une vulnérabilité, oui, mais pourquoi ne pas lancer une autre idée là-bas, hein?) et puis tester à nouveau lors de chaque chargement de la page; si vous détecter une différence de moins de quelques secondes, l'utilisateur probablement juste rechargé votre page. : )OriginalL'auteur Hexagon Theory
pourrait utiliser une session. plus facile que d'un cookie et ne pas avoir à s'inquiéter à propos de l'expiration ou de la base de données. Que feriez vous couvrir pour les pages sauf la première. Je ne pense pas que la session superglobale est disponible jusqu'à la deuxième page. Si c'est un problème, vous pouvez démarrer une session et de recharger la page immédiatement si il n'y a pas de session active.
OriginalL'auteur squerg