Console.log一些东西一旦异步Facebook喜欢按钮加载(显示)

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

本文关键字:按钮 喜欢 加载 显示 Facebook 异步 log Console      更新时间:2023-09-26

我在我的页面上使用简单的like按钮:

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

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

类似于init的回调?我必须使用一些FB API吗?

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

当fb . xfxml .parse()完成时触发。这表明页面上的所有社交插件都已加载。

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

(你不需要显式地调用FB.XFBML.parse,它也会在初始加载时触发SDK解析的社交插件)

谢谢你。你的回答很有帮助。我将接受它,但为了增加一些有价值的东西,我也将我的最终解决方案粘贴在下面。

window.fbAsyncInit我已经添加了我的自定义事件称为social_finished_rendering

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

,然后在后面的代码

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

不,我能够执行我的DOM动作一旦异步喜欢按钮加载。谢谢你CBroe!