Comment puis-je obtenir l'URL de destination de l'événement onbeforeunload?
J'ai cherché pendant des heures, mais je ne pouvais pas trouver une solution pour cela.
window.onbeforeunload = warn;
Cela ne fonctionne pas:
function warn (e)
{
var destination = e.href;
alert(destination );
}
Ok, donc pour effacer les choses. Si l'utilisateur clique sur un lien sur la page elle-même, c'est facile, parce que vous pouvez ajouter un gestionnaire d'événements pour tous les liens de l'événement onclick, mais. Je voulez attraper l'adresse, les types de l'utilisateur dans le champ url de son navigateur.
- Je travaille sur le traitement des données des sites et avant qu'un utilisateur quitte la page, j'ai assurez-vous que toutes les données conforme aux exigences. L'événement onbeforeunload est utile, mais difficiles en raison de la façon dont les navigateurs de la gérer. Je ne peux pas arrêter de l'utilisateur de quitter la page, mais il serait bon de savoir où ils vont. Il se trouve que, dans mon cas, je ne le sais parce que c'est un site de redirection, donc je peux définir une variable de session.
Vous devez vous connecter pour publier un commentaire.
Parce qu'il ne peut pas être fait. Le nouvel emplacement est privé de renseignements sensibles.
Personne ne veut que vous sachiez quels sites ils visitent lorsqu'ils quittent votre site.
Si vous voulez juste pour voir ce lien de destination, vous pouvez utiliser :
Mais arriver à la ligne d'adresse de destination n'est pas possible.
J'ai entendu parler de solutions de déclencher un événement si la souris se déplace jusqu'à la ligne d'adresse (pour avertir l'utilisateur qu'il y a inachevé des processus qui n'ont pas été traités), mais ce genre de hack, je ne ferais jamais.
Kaze réponse est une approche intéressante, mais en regardant l'élément de mise au point lorsque la page est de naviguer loin de n'est pas vraiment fiable. En partie parce qu'il y a un délai entre le lien et cliquez sur la navigation à partir de la page (période pendant laquelle l'utilisateur peut déplacer le focus à un autre élément, mais aussi parce qu'un lien peut être porté (par exemple. par le contrôle du clavier, ou mousedown-sans-cliquez sur) sans réellement en train de naviguer loin de la page. Donc, si vous faisiez un lien, puis a fermé la fenêtre, il pourrait penser que vous suivez le lien.
De piégeage
onclick
pour tous les liens sur la page (plusonsubmit
sur chaque forme) est un peu plus fiable, mais elle peut encore être dupe en raison du retard. Par exemple, vous cliquez sur un lien, mais avant la nouvelle page commence à charger appuyer sur le bouton back (ou appuyez sur la touche echap). Encore une fois, si vous fermez la fenêtre, il pense que vous êtes en suivant le lien.Il n'existe aucun moyen qui n'arrivera jamais. Il est évident confidentialité no-no.