सबसे पहले, मैं स्पष्ट करना चाहता हूं कि मैं prerender.io का उपयोग कर रहा हूं और सब कुछ अच्छा है। अगर मैं फेसबुक में यूआरएल पेस्ट करता हूं तो साइट सही तरीके से साझा की जाती है।

समस्या मेरे साइट पर मौजूद सोशल नेटवर्क के लाइक/ट्वीट बटन पर है।

1) मेरे पास पहला मुद्दा यह है कि फेसबुक बटन और टिप्पणी अनुभाग "कभी-कभी" दिखाई देते हैं, मेरा मतलब है... बटन वहां नहीं हैं। मुझे मूल कारण प्राप्त करने के लिए कोई संबंध नहीं मिला... 2) दूसरा यह है कि जब बटन साझा करने के लिए (फेसबुक) और ट्वीट करने के लिए (ट्विटर) पूरा यूआरएल लोड नहीं करते हैं। यूआरएल सर्वर + पेज के लिए रूट + वीडियो की आईडी (वीडियो देखने के लिए एक वेब पेज है) से बना है। लेकिन जब मैं कुछ मामलों में बटन पर क्लिक करता हूं तो वीडियो आईडी यूआरएल में नहीं होती है, जो बहुत अजीब है।

मैं जिस साइट की बात कर रहा हूं उसका लिंक है: https://www.granojo.com/video/10334

कोड है:

<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>

और मेरे core.run में मेरे पास है:

$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'));
}
6
Faabass 8 अगस्त 2017, 20:58

1 उत्तर

सबसे बढ़िया उत्तर

ऐसा लगता है कि आपका फ़ंक्शन कॉल नहीं किया जा रहा है। मैं मैन्युअल रूप से क्रोम कंसोल में चला गया window.fbAsyncInit(); और आपका फेसबुक जैसे बटन आदि ठीक लोड हो गए। ऐसा लगता है कि fbAyncinit(); को सही समय पर कॉल नहीं किया जा रहा है।

जब आप कुछ भी क्लिक करते हैं तो मैं फ़ंक्शन को लोड ईवेंट से जोड़ दूंगा, इसलिए जब पृष्ठ सरल कॉल लोड करना समाप्त कर देता है:

 window.fbAsyncInit();

अगर वह काम नहीं करता है तो मैं इसे कॉल करने से पहले शायद 250ms की एक छोटी सी देरी जोड़ दूंगा।

7
Deckerz 15 सितंबर 2017, 12:28
1
यह बहुत अच्छा काम किया! धन्यवाद! एक ही मुद्दे के बारे में कोई विचार लेकिन ट्विटर के साथ? कभी-कभी यह एक बटन के बजाय एक लिंक के रूप में दिखाई देता है (मैं ट्वीट बटन के बारे में बात कर रहा हूं (
 – 
Faabass
15 सितंबर 2017, 22:35
1
मुझे लगता है कि यह वही मुद्दा है। जैसा कि मैं काम नहीं कर रहे ट्विटर को पुन: पेश नहीं कर सकता, अगर यह काम करता है तो क्या आप इसे सही उत्तर के रूप में चिह्नित कर सकते हैं :)
 – 
Deckerz
16 सितंबर 2017, 14:34