detection de clic sur un lien ?

  • Auteur de la discussion Auteur de la discussion cr500
  • Date de début Date de début
WRInaute occasionnel
Bonjour à vous
je cherche un moyen pour comptabiliser le nombre de clic sur un lien sans modifier l'url du clic :

explication

habituellement pour détecter un clic sur un lien il fallais faire un truc du genre :
monsite.fr/clic.php?url=xxxxx ou monsite.fr/clic.php?id=xxxx

je souhaite que l'url s'affiche entièrement
exemple
sitedupartenaire.fr

comment faire dans l'exemple pour comptabiliser des clic sur sitedupartenaire ?
 
WRInaute accro
J'ai du faire ça il y a moults années sur un site :

Code:
<script language="javascript">
window.onload = function() 
{
	// Parcours de la liste des liens présent dans la page
	for (i = 0; i < document.links.length; i++) 
	{
		// Définition de l'évènement onclick
		document.links.item(i).onclick = function() 
		{
			return count_link(this.id,this.href);
		}
	}
}
</script>

Et en ce qui concerne count_link :

Code:
function count_link(lnk,to)
{
	var xhr_object = null;
	if(window.XMLHttpRequest) // Firefox
	xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) // Internet Explorer
	xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else { // XMLHttpRequest non supporté par le navigateur
	alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");return}

	xhr_object.open("GET", "tracker.php?dest="+to, false); 
	xhr_object.send(null); 
}

Et dans tracker.php tu récupères les paramètres passées en JS pour les insérer en base de donnée (par exemple). J'avais également géré le compte uniquement sur les url externes en les identifiant dans le fichier php.

Après c'est à adapter (j'utiliserais maintenant plus une librairie comme jQuery pour piloter le js).
 
WRInaute occasionnel
<div id="thediv"><a href="/" id="thelink">test</a></div>
<script type="text/javascript">
var oDiv = document.getElementById('thediv');
var oLink = document.getElementById('thelink');
oDiv.addEventListener('click',function (e) {
alert('Div capture ran. Now stopping propagation.');
e.stopPropagation();
},true);
oLink.addEventListener('click',function (e) {
alert('This alert should never appear');
},false);
</script>

c'est bon
 
WRInaute occasionnel
UsagiYojimbo a dit:
J'ai du faire ça il y a moults années sur un site :

Code:
<script language="javascript">
window.onload = function() 
{
	// Parcours de la liste des liens présent dans la page
	for (i = 0; i < document.links.length; i++) 
	{
		// Définition de l'évènement onclick
		document.links.item(i).onclick = function() 
		{
			return count_link(this.id,this.href);
		}
	}
}
</script>


beau plus impressionnant que mon ptit code ^^

merci

Et en ce qui concerne count_link :

Code:
function count_link(lnk,to)
{
	var xhr_object = null;
	if(window.XMLHttpRequest) // Firefox
	xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) // Internet Explorer
	xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else { // XMLHttpRequest non supporté par le navigateur
	alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");return}

	xhr_object.open("GET", "tracker.php?dest="+to, false); 
	xhr_object.send(null); 
}

Et dans tracker.php tu récupères les paramètres passées en JS pour les insérer en base de donnée (par exemple). J'avais également géré le compte uniquement sur les url externes en les identifiant dans le fichier php.

Après c'est à adapter (j'utiliserais maintenant plus une librairie comme jQuery pour piloter le js).
 
WRInaute occasionnel
si je souhaite comptabiliser les liens non pas de la page entiere mais que ceux dans un div je remplace :

Code:
document.links.length


par

Code:
document.getElementById("nom_div").links.length
 
WRInaute occasionnel
oui cr500 normalement avec un getElementById("nom_du_div") ca devrait marché, as-tu essayer ?
 
WRInaute discret
+ simple en utilisant l'outil de google permettant de créer des campagnes en ajoutant un tracker au lien que tu veux monitorer, et tu retrouves tes stats dans GA dans la sections campagnes
 
Discussions similaires
Haut