javascript - 许多 facebook 喜欢页面上的按钮,异步

标签 javascript asynchronous facebook-like

我正在为在我们网站上写过消息的人建立一堵墙。对于每条消息,我想包含一个 Facebook Like 按钮。但是 Facebook 的实现是在构建 fb:like 标签之前包含脚本标签。

 <script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
      <fb:like href="http://example.com/MessageWall.aspx/Fan/222" 
            show_faces="false" width="250">
 </fb:like>

我尝试过这种方法,但是因为我一次在页面上显示 121 个人,所以页面性能,可以说,低于标准。我不敢相信我每次都必须包含脚本标签。

我现在正在尝试以异步方式执行此操作。

我试过这个:

    (function() {
        var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js#xfbml=1';
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(e, s);
    }());

    var firstHalfOfLikeButton = '<fb:like href="http://example.com/MessageWall.aspx/Fan/';
    var secondHalfOfLikeButton = '" layout="button_count" show_faces="false" width="250"></fb:like>';
    var userId, divId;
    for (var x=0; x<listOfIdsOfActiveTiles.length; x++) {
        userId = listOfIdsOfActiveTiles[x][0];
        divId= listOfIdsOfActiveTiles[x][1];
        $("div#" + divId+ " .hbo-message").append(firstHalfOfLikeButton + userId + secondHalfOfLikeButton);
    }

在循环并将 fb:like 标记附加到每个位置之前,我还尝试像这样将 all.js 异步附加到 fb-root。

 (function() {
    var e = document.createElement('script'); e.async = true;
     e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js#xfbml=1';
         document.getElementById('fb-root').appendChild(e);
 }());

我还尝试循环创建 fb:like 标签,然后附加 all.js 文件。

更新:在每个实例中,我都可以看到

有没有人有什么想法?

谢谢, 斯科特

更新

事后返回此页面,但我最终做的是在单击项目时为每个人的图像动态构建一个“赞”按钮。因此,我的 onclick 代码会检查它是否不存在,如果不存在,则使用我上面的构建 block 构建它。

这样,我就不必在页面加载时创建 121 个类似的按钮。相反,我按需创建它们。

您可以在 honeybunchesofoats.com 查看完成的项目

最佳答案

您只需包含一次 facebook 脚本,而不是为每个点赞按钮包含一次。然后它将在页面中搜索所有 xfbml 元素。

关于javascript - 许多 facebook 喜欢页面上的按钮,异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4948696/

相关文章:

javascript - JSON - 我需要 "false"的属性吗?

java - Android 在另一个异步任务中调用异步任务?

javascript - 多个 facebook 按钮 (fb :like) are not working: unliking themself

javascript - 如何在输入小部件中放置 x 以清除内容?

javascript - Ajaxurl 返回 0

javascript - AngularJS $http GET 调用获取 "Cannot GET/[object%20Object]"错误

C# Chained ContinueWith 不等待上一个任务完成

javascript - 调用具有默认参数的异步函数作为参数检查同步处理的函数?

ios - FBSDKLikeControl 标题文本不会根据设备区域设置改变 FBSDK ios