Facebook Share et url Javascript

Nouveau WRInaute
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 :)
 
WRInaute accro
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.
 
Nouveau WRInaute
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 :)
 
WRInaute accro
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.
 
Nouveau WRInaute
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
 
Nouveau WRInaute
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
 
WRInaute accro
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.
 
Nouveau WRInaute
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
 
WRInaute accro
+ 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.
 
Discussions similaires
Haut