2010-11-06 4 views
1

Disons que j'ai un code d'intégration avec un script qui ajoute des événements à certains éléments DOM. Ceux-ci seraient normalement des liens ou des boutons. Une fois qu'un événement est appelé, je fais un appel ajax pour enregistrer cet événement click.Code intégré qui suit les clics sur certains éléments DOM (problème sur les liens/boutons qui redirigent)

Les problèmes surviennent avec les liens qui redirigent. Ainsi, l'ajout d'un événement onclick à un

<a href="http://google.com">link</a> 

pourrait ne pas fonctionner depuis la page sera redirigée avant l'événement est enregistré par l'appel ajax.

De toute évidence, des sites tels que google analytics, omniture, effectuent le suivi des conversions. Y a-t-il de bons moyens pour résoudre ce problème? Supposons également que tout cela fonctionne avec un code d'intégration (comme google analytics) - donc nous ne pouvons pas trop modifier le code html.

Et dans le cas où l'appel ajax échoue, la page doit encore être redirigée.

Répondre

2

détourner le clic, empêcher le défaut, puis déclencher la redirection sur le rappel.

var link = ''; $ ("a") .cliquez sur (fonction (e) { e.preventDefault(); link = $ (this) .attr ("href"); $ .ajax (.... function() { window.location = link; }) });

+0

Oui, c'est probablement ce que nous finirons par faire - mais nous devrons aussi détecter si href est javascript: function() ou javascript: void (0). Je me demandais juste s'il y avait un meilleur moyen. Le code d'intégration sera sur les sites de nos utilisateurs et je n'aime pas jouer avec le HTML d'autres sites. – rksprst

+1

Ceci est une vieille question mais pour le bénéfice de nouveaux lecteurs, vous pouvez théoriquement tester si le lien commence par "javascript:" et exécuter eval() au lieu d'assigner window.location – soulkphp

Questions connexes