Facebook Share et url Javascript

bonjour à tous,

je suis actuellement en train d'essayer d'ajouter la fonction Partager de facebook.

https://www.facebook.com/share/

mais j'ai un petit problème avec leur code. Pour afficher un bouton Partager il faut ajouter ca dans son code :

Code:
<a name="fb_share" type="button_count" share_url="URL_A_PARTAGER" href="https://www.facebook.com/sharer.php">Partager</a>
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script>

jusque la rien de bien méchant.

Mon problème est le suivant, mon site est pratiquement que en javacript, j'ai une fonction qui me crée le lien de la page dynamiquement.

il faut donc que j'insert dans le code facebook la variable JS qui contient mon URL. mais comment faire ???

j'ai deja tester de mettre le code complet dans une document.getelement mais lors de l'affichage du div je n'ai rien qui apparais.
Code:
document.getElementById('fb').innerHTML ='<a name="fb_share" type="box_count" share_url="' +fb+ '">';

auriez vous une idée ?

Merci d'avance :)
 
Au lieu d'utiliser innerHTML, crée de vrais objets DOM et insère-les dans l'arbre au bon endroit. document.createElement, element.setAttribute et element.appendChild ou element.removeChild sont tes amis.

Jacques.
 
Merci Jacques pour ton aide,

N'aurais tu pas un site qui parle de ces objets DOM avec des exemples , j'ai chercher sur google mais visiblement sa cours pas les rues les tuto ou les exemples concernant ce type d'objet et n'etant pas développeur si j'ai pas d'exemple je comprend pas :)
 
En supposant que l'endroit où tu veux ajouter ton bouton soit marqué par un <div id="ici"></div>

Code:
var a=document.createElement("a");
a.setAttribute("name","fb_share");
a.setAttribute("type","button_count");
a.setAttribute("share_url","URL_A_PARTAGER");
a.setAttribute("href","https://www.facebook.com/sharer.php");
a.appendChild(document.createTextNode("Partager"));
var script=document.createElement("script");
script.setAttribute("src","http://static.ak.fbcdn.net/connect.php/js/FB.Share");
script.setAttribute("type","text/javascript");
var div=document.getElementById("ici");
div.appendChild(a);
div.appendChild(script);

Pas testé, mais ça ne doit pas être très loin. On doit pouvoir faire plus simple en jquery ou prototype, mais je ne les utilise jamais. Evidemment, tu as intérêt à mettre tout ça dans une fonction pour éviter de téléscoper d'autres variables, ou au moins préfixer toutes les variables.

Tout ceci étant dit, au niveau accessibilité et référencement, le "tout en JS" c'est pas terrible...

Jacques.
 
Merci Jacques pour ton aide,

Ton script, + les liens que j'ai trouvé sur le web au sujet des objets DOM, m'on permis de régler mon probleme
 
je suis désolé de revenir sur ce sujet mais j'ai pas réussi a régler tous mes problèmes avec se script FB .

j'ai bien le problème que tu as soulever, j'ai plusieurs bouton qui apparaissent car je n'ai pas mis le code d'en une fonction, j'ai bien essayer cela mais sans succès :
Code:
function() {
    var a=document.createElement("a");
    a.setAttribute("name","fb_share");
    a.setAttribute("type","button_count");
    a.setAttribute("share_url", +b);
    a.setAttribute("href","https://www.facebook.com/sharer.php");
    a.appendChild(document.createTextNode("Partager"));
    var script=document.createElement("script");
    script.setAttribute("src","http://static.ak.fbcdn.net/connect.php/js/FB.Share");
    script.setAttribute("type","text/javascript");
    var div=document.getElementById("ici");
    div.appendChild(a);
    div.appendChild(script);

};

2eme souci je n'arrive pas non plus a recuperer ma variable "b"
Code:
 a.setAttribute("share_url", +b);
je recupere une valeur NAN , je doit avouer que je comprend pas trop pourquoi.

Aurais tu une idée ?

Bonne soirée
 
Pour le premier problème, tu as un exemple de page où on peut voir ça?

Pour le deuxième, le problème c'est le "+" devant le b, ça ne veut pas dire grand chose.

Jacques.
 
En effet tu avais raison pour le + ! je doit avouer que j'avance a taton avec le javascript car je connais pas et comme j'ai vu que dans d'autre partie du script il y avais '" +b+ '". Cela semblais donc logique pour moi .

je suis pas super confiant de donnée un lien vers mon site avant qu'il ne soit fini, en cas je peux te donner mon adresse mail si tu veux (demande-moi par MP) je te montrerais le problème avec grand plaisir .

Greg
 
+ est un opérateur, qui a deux significations possibles: l'addition pour les nombres, et la concaténation pour les chaînes de caractères. Donc "ab"+"cd" donne "abcd". Mais là tu n'as qu'une seule chaîne, donc pas besoin de +...

Tu peux m'envoyer l'URL par MP si tu veux.

Jacques.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut