繁体   English   中英

一旦异步Facebook赞按钮被加载(显示),Console.log

[英]Console.log something once async Facebook Like button is loaded (displayed)

我在页面上使用了简单的“赞”按钮:

<div id="fb-root"></div>
<script>(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/pl_PL/sdk.js#xfbml=1&version=v2.4";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

和我的HTML

<div class="fb-like"
     data-href="https://www.facebook.com/link_to_sample_fanpage"
     data-layout="button_count"
     data-action="like"
     data-show-faces="false"
     data-share="false">
</div>

一切正常。 Button是异步加载的,这很酷。 我要实现的是执行特定的操作,比如说一旦按钮被加载, console.log('async button loaded)

像init上的回调一样? 我必须使用一些FB API吗?

JS SDK允许您订阅某些事件,其中之一是xfbml.render

FB.XFBML.parse()完成时触发。 这表明页面上的所有社交插件均已加载。

https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/v2.4

(您无需显式调用FB.XFBML.parse ,它也将在初始加载时针对由SDK解析的社交插件触发。)

谢谢CBroe。 您的回答非常有帮助。 我会接受的,但是要添加一些有价值的东西,我还将在下面粘贴我的最终解决方案。

window.fbAsyncInit我添加了名为social_finished_rendering自定义事件。

FB.Event.subscribe('xfbml.render', social_finished_rendering);

然后在代码中

var social_finished_rendering = function() {
    // console log whatever
};

不,一旦加载了异步“赞”按钮,我就能够执行DOM操作。 谢谢CBroe!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM