angularjs - referencement - angular title service



Angularjs avec problème à partager dans les réseaux sociaux (1)

Votre fonction ne semble pas être appelée. J'ai manuellement dans la console Chrome exécutée window.fbAsyncInit(); et votre bouton Facebook comme etc chargé bien. Il semble que le fbAyncinit(); ne se fait pas appeler au bon moment.

Je lie la fonction à l'événement de chargement lorsque vous cliquez sur quelque chose, donc quand la page se termine le chargement simple appel:

 window.fbAsyncInit();

Si cela ne marche pas, j'ajouterais un petit délai de 250 ms avant de l'appeler.

Tout d'abord, je tiens à préciser que j'utilise prerender.io et que tout va bien. Si je colle l'URL sur Facebook, le site est partagé correctement.

Le problème est sur le bouton J'aime / Tweet du réseau social que j'ai sur le site.

1) Le premier problème que j'ai est que les boutons Facebook et les sections de commentaires apparaissent "parfois" je veux dire ... Dans certaines occasions, ils apparaissent, mais si je rafraîchis la page ou si j'essaye un autre moment pour charger la page, les boutons ne sont pas là. Je ne pouvais pas trouver de relation pour obtenir la cause racine ... 2) Le second est que lorsque les boutons à partager (Facebook) et à tweeter (Twitter) ne charge pas l'URL complète. L'URL est composée du serveur + un itinéraire vers la page + l'identifiant de la vidéo (est une page web pour regarder des vidéos). Mais quand je clique sur les boutons dans certains cas, l'identifiant de la vidéo n'est pas dans l'URL, ce qui est très étrange.

Le lien vers le site dont je parle est: https://www.granojo.com/video/10334

Le code est:

<div class="text-center">
    <div class="fb-like"  style="top: -5px;" data-send="true" data-href="{{ENVIRONMENT.WEB}}/video/{{values.object.id}}" data-send="false" data-layout="button_count" data-width="450" data-show-faces="true"></div>
    <a data-url="{{ENVIRONMENT.WEB}}/video/{{values.object.id}}" data-text="{{values.object.name}}" href="https://twitter.com/share" class="twitter-share-button" data-lang="es" data-hashtags="{{values.object.name | nospace}}">Twittear</a>
    <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
    <!-- Place this tag where you want the +1 button to render. -->
    <div class="g-plusone" data-size="medium" data-href="{{ENVIRONMENT.WEB}}/video/{{values.object.id}}"></div>

    <!-- Place this tag after the last +1 button tag. -->
    <script type="text/javascript">
        window.___gcfg = {lang: 'es'};

        (function() {
            var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
            po.src = 'https://apis.google.com/js/plusone.js';
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
        })();
    </script>
</div>

Et dans mon core.run j'ai:

$window.fbAsyncInit = function() {
    FB.init({
        appId: 'xxxxxxx',
        xfbml: true,
        version    : 'v2.6'
    });
};
(function(d, s, id){
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/es_LA/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
}




facebook-javascript-sdk