2010-05-14 3 views
0

Quelqu'un sait comment faire:Faire des choses en fonction de l'action dans une page web avec Jquery

Lorsqu'un utilisateur a quitté mon site en fermant le navigateur ou l'onglet ou d'aller à un autre site que je voudrais faire une action (montrer une alerte) et si l'utilisateur clique sur un lien ou un bouton vers une autre page de mon propre site je voudrais faire une autre action ...

Si j'utilise un événement de déchargement, je ne peux pas faire la différence entre ces deux types de comportement de l'utilisateur ... s'il vous plaît aidez parce que j'en ai vraiment besoin.

Merci pour l'aide.

Répondre

1

Définir un indicateur sur tous vos liens internes:

var isInternal = false; 
$('a[href^="http://mysite.com/"]').live('click', function() { 
    isInternal = true; 
}); 

// then in your onunload handler: 

if (isInternal) { 
    // perform action 1 
} else { 
    // perform action 2 
} 

Un meilleur sélecteur pour les liens peut-être quelque chose comme ceci:

$('a:not([href*="//"])') 

Mais seulement si vous ne jamais utiliser des liens absolus dans votre propre site.

+0

Je suis d'accord avec cela. Ensuite, votre drapeau sur les liens internes peut vous dire si votre navagating de la page. Cependant, je crois qu'il est important de noter que cela ne fonctionnera pas lorsque vous utilisez des événements onClick sur des éléments, puis en utilisant javascript pour rediriger. Mais globalement C'est probablement votre meilleure solution. –

+0

@John - selon l'ordre dans lequel les gestionnaires de clic sont déclenchés, cette méthode peut toujours fonctionner. – nickf

+0

cela fonctionnerait-il si mon ancre ressemble à 'Contact Us'? ... c'est toujours interne droit? – Reigel

Questions connexes