|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : septembre 2004 Messages : 244 ![]() |
Bonjour,
Est-il possible de récupérer l'id présent dans une balise <a>, lors d'un clique sur celle -ci ? En sachant que la balise , ce qui provoque l'ouverture d'une nouvelle fenêtre. Exemple: Code :
<a target="_blank" href="http://www.site.com" id="254'>titre site</span></a> |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Récupérer comment? JS? PHP?
Pourquoi faire? |
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : septembre 2004 Messages : 244 ![]() |
Le but est que lors du clique sur la balise <a>, cela m'ouvre un nouvelle fenêtre avec le lien en question.
Et ensuite j'insére en bdd l'id correspondant. |
|
|
00
|
|
|
#4 | |||
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Citation:
Code :
<a href="http://monsite.fr/redirect/?id=254" target="_blank">titre site</a> Code :
Si ce n'est pas le cas, il faudrait passer l'url et l'id. |
|||
|
00
|
|
|
#5 | |||||
|
Membre habitué
![]() Inscription : septembre 2004 Messages : 244 ![]() |
Le problème c'est que je fait pas de direction, j'ai que des liens direct vers mes sites partenaires.
Je veut que le lien soit le plus rapide possible (je veut faire des stats sur des flux RSS que j'affiche), pas de redirection. L'id présent dans mon URL, pourrait etre aussi bien une chaine de caractère comme site1, site2, aucun rapport avec l'URL. Et donc je me suis dit qu'en lui mettant un identifiant, via un petit coup de jquery j'arriverais à récupérer mon id, pour incrémenter le nombre de clic dans ma bdd. Le problème c'est que ça m'ouvre bien, l'url de mon partenaire, mais quand je fait apppel à la mienne via Ajax, ça semble tourner en rond. J'ai l'impression quand la fenetre vers mon partenaire s'ouvre, le navigateur considère que s'est "terminé" ??? Code :
Citation:
|
|||||
|
|
00
|
|
|
#6 | ||
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Essayez de modifier :
Code :
Après là, c'est en mode asynchrone : tant que la requête AJAX n'aura pas finit, la page ne s'ouvrira pas. jQuery propose des réglages pour l'AJAX à ce niveau. |
||
|
00
|
|
|
#7 | |||||
|
Membre habitué
![]() Inscription : septembre 2004 Messages : 244 ![]() |
Citation:
C'est vraie que la méthode de base, est carré côté stat, mais je cherche pas à avoir des "stats exact", du moins pas dans l'immédiat/ Juste une dernière question, j'ai changé un peut ton code. Le but est que si au bout de 1500 sec, si j'ai pas de retour de ajax, je force l'ouverture fenetre de mon partenaire, tant pis pour mes stats. Ca à l'air de marché mais si tu pouvais me confirmer le code stp ??? jquery/ajax c'est tout nouveau pour moi Code :
|
|||||
|
|
00
|
|
|
#8 |
|
Membre habitué
![]() Inscription : septembre 2004 Messages : 244 ![]() |
Mauvaise nouvel pour moi.
J'ai fait un test au taf sous unbuntu, et il semble que firefox et chrome interpréte le comme un popup, les fenêtres des parternaire ne s'ouvrent plus N'y a t'il pas une autre solution de contournement ? |
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 709 ![]() |
Salut
J'ai tenté de suivre ce topic et le problème, je ne parviens pas à voir l'intérêt de jQuery. Si tu mets un simple lien (donc <a href="">...</a>) avec un attribut "target" et _blank, ça va ouvrir une nouvelle fenêtre. (ou onglet, ça dépend comment est configuré le navigateur du client), et ça sans redirection donc. Et bien en rajoutant l'information (un ID ou autre) en paramètre, et ensuite récupérer cette info dans la nouvelle page (avec $_GET) et faire l'incrémentation à ce moment là, en quoi ceci ne serait pas correcte, qu'est ce qui clocherait ? Aussi, en admettant que le faire en jQuery soit nécessaire, et bien il n'y a pas à faire de "window.open()". Pour un lien, et en laissant le target/_blank, ça va ouvrir une nouvelle fenêtre (ou onglet), et ça, quoi qu'il arrive. Donc faire un "window.open()" sur un lien c'est en quelque sorte faire la même chose ce que fait déjà un lien, ce qui devient limite absurde (sans que ça soit péjoratif). Si la balise n'était pas un lien, alors oui, là on peu envisager de combler le manque via du JS. En somme, et sauf erreur, tu ne souhaite pas faire une redirection, mais ce que fait le jQuery reste néanmoins la même chose qu'une redirection. En résumé, s'il y a quelque chose à faire lors du click (le jQeury, genre une incrémentation), on fait juste l'incrémentation, et c'est tout, sans plus (sous entendu, on laisse le lien ouvrir la bonne page, dans une nouvelle fenêtre ou pas, peu importe).
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
00
|
|
|
#10 | |||||
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Citation:
Citation:
Sinon, c'est l'ouverture dans la même fenêtre avec window.location doc là dessus Citation:
Donc, d'après moi, c'est :
Les 2 ont des avantages et des inconvénients. La redirection empêche de voir le lien direct et pour le SEO, c'est pas tip top. La requête AJAX peut ne pas fonctionner (ou ne pas être lancée du tout si JS desactivé), les stats seront fausses. |
|||||
|
00
|
|
|
#11 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 709 ![]() |
Citation:
Mais ça ne change rien au problème du "window.open" qui reste inutile. De plus, on ne fait que récolter les 2 inconvénients que tu viens de citer : - L'URL du lien ne pointant pas vers la page désirée, du coup coté référencement c'est pas top. - Si JS est désactivé coté poste client la nouvelle fenêtre ne s'ouvrira pas (et l'incrémentation n'aura lieu). Si c'est l'Ajax qui est adoptée, je ne vois vraiment pas l'utilité de faire ce "window.open". Dans le code Ajax, il y aurait juste à faire l'incrémentation, donc de faire pointer l'URL de cette Ajax vers la page qui se charge à incrémenter avec le paramètre, et c'est tout. C'est ce que je suggérais à la fin. Dans le lien (le <a></a>), il faut indiquer la vrai URL de destination, le target/blank se chargera de l'ouvrir dans une nouvelle fenêtre (ou onglet). On optimise du coup le référencement. A coté de ça, la méthode window.open est faite comme ceci : Code :
window.open("URL","nom_de_la_fenetre","options_de_la_fenetre"); Mais ça ne sert à rien d'indiquer "_blank" (une nouvelle fenêtre), car par définition cette fonction sert justement à ouvrir une nouvelle fenêtre. Cependant, plus personne ne l'utilise car à aujourd'hui la quasi totalité de navigateur intègrent des "bloqueurs" de popup. En résumer, il n'y aucune bonne raison d'ouvrir une popup à mon sens.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#12 |
|
Membre habitué
![]() Inscription : septembre 2004 Messages : 244 ![]() |
Donc j'en conclus, que dans tous les cas, je suis "coincé".
Je vais essayé autre chose, techniquement je sais pas où je vais, mon,idée est : A chaque clique, j'enregistre dans une variable goblale via javacript l'id du lien. Lors de la fermeture de la fenetre de mon site, ou changement de page, via ajax j'insére les données en BDD. Avec votre expérience, pensez-vous que c'est une bonne idée ? |
|
|
00
|
|
|
#13 | ||||||
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Citation:
Code :
Citation:
Citation:
Il faut bien que la page s'ouvre après l'incrémentation (faite par AJAX dans ce cas là) Citation:
Pour le reste, je suis d'accord. Déjà, d'une, je déteste qu'on m'"oblige" à ouvrir une nouvelle fenêtre (le clic du milieu, c'est pas fait pour les chiens), c'est pour ça que j'évite les target="_blank" dans mes productions. Et c'est aussi pour ça que j'ai proposé "window.location". Et c'est finalement aussi pour ça que je maintiens ma 1ere solution comme la plus "pratique" et la "meilleur" dans ce cas là. La redirection PHP aurait presque tous les avantages. Au niveau SEO, ce serait pas tip top mais une redir 301 n'est pas trop mal. Juste, l'utilisateur ne verrait pas l'url finale sur la page d'origine. |
||||||
|
00
|
|
|
#14 | |
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Citation:
Et comment tu différencies un clic de changement de page d'un clic à traiter pour les stats ? C'est possible mais assez "hasardeuse" comme solution. |
|
|
00
|
|
|
#15 |
|
Membre habitué
![]() Inscription : septembre 2004 Messages : 244 ![]() |
Celle du "window.open", n'est pas bonne, je l'ai testé au travaille sur firefox et chrome ( sous ubuntu), et c'est considérée comme des popups, donc ça marche pas, à moins que l'utilisateur autorise l'ouverture de popups.
Pour la redirection, j'y réfléchis, ouverture d'une nouvelle fenêtre, avec redirection. Faut que j'estime l'impact sur mon site : - qui je pense devrais etre nulle vue que c'est des liens extérieurs - si le code à modifié n'est pas trop lourd Pour "différencies un clic de changement de page d'un clic à traiter pour les stats", je pensais, à genre une vérification de changement d'url : 0) si changement url 1) je verifie que c'est mon site 2) si oui requete ajax si variable globale non vide Mais je t'avoue que c'est juste une idée qui m'est venue à l'esprit Ce que j'aimerais bien savoir aussi, c'est comment des sites comme addfreestats.com, arrive à comptabiliser les liens sortant |
|
|
00
|
|
|
#16 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 709 ![]() |
Citation:
Pour ceux qui optent pour du Javascript, et bien ça ne sera pas comptabilisé si l'utilisateur désactive JS, ça fait pas un pli. Ou alors, via une redirection, ce qui certes n'est pas top pour le référencement (pour les partenaires au moins). Pour ma part, c'est à toi de faire un choix. Pose toi la question si ton publique visé désactive Javascript. D'ailleurs, est ce que ton site ne serait pas déjà dépendant de JS, ce qui au passage l'est déjà pour pas mal de site Web. Citation:
J'aimerais bien savoir pourquoi une redirection te causerais problème. Théoriquement, sans pour autant être un aficionados du référencement, mais une redirection de type 301 est valide. Théoriquement toujours, ll faut juste mettre en place de la réécriture. Exemple : 2 partenaires : google et facebook -http://site.com/partenaires/google -http://site.com/partenaire/facebook Ceci sera réécrit comme : -http://site.com/partenaires.php?partenaire=google -http://site.com/partenaires.php?partenaire=facebook Du coup, vu qu'on pointe sur sa page en 1er, on pourra faire la mise à jour/incrémentation, puis au bout on fait une redirection de type 301 vers la page du partenaire, faudra rajouter ça avec la fonction header. Soit rediriger vers : -http://www.google.com -http://www.facebook.com Théoriquement, les moteurs de recherche devraient considérer l'URL de départ comme pas la bonne mais prendre en compte celle de la redirection. En somme, c'est comme si on indiquait directement -http://www.google.com ou http://www.facebook.com dans le lien de départ. C'est d'ailleurs comme ça qu'on fait quand on change d'URL dans son propre site : On indique au moteur de recherche que l'ancienne URL (plus bonne) pointe vers la nouvelle sans que cela soit pénalisant. Théoriquement ça marche, je dis bien, théoriquement.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||
|
|
00
|
|
|
#17 | |||
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Citation:
Citation:
Citation:
Après comme le dit RunCodePhp (et moi dans mon 1er post), tu peux faire de jolies URL bien SEO avec une redirection. ça reste, pour moi et à la vue de ton use-case le meilleur choix. |
|||
|
00
|
|
|
#18 |
|
Membre habitué
![]() Inscription : septembre 2004 Messages : 244 ![]() |
Bon c'est décidé , j'opte pour la redirection
Merci bcp pour votre temps et aide, j'aurai appris des petites chose, c'est très enrichissant Je clos le post, encore un grand merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com