如何动态加载facebook像按钮?

时间:2011-06-25 18:32:10

标签: javascript jquery facebook-graph-api

我正在构建一个应用程序,在主页面上加载一些产品,然后在加载后点击每个产品项目,它会显示小弹出窗口,并显示像特定产品的按钮和评论供稿,我写了这样的代码。< / p>

function renderFBWidgets() {
        window.fbAsyncInit = function () {
            FB.init({ appId: '165987850132000', status: true, cookie: true, xfbml: true
            });
        };
        (function () {
            var e = document.createElement('script'); e.async = true;
            e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
            document.getElementById('fb-root').appendChild(e);
        } ());
        var u = //get product url
        $('.productlist').append('<div style="margin-left: 30px;"><fb:like href="' + u + '" send="true" layout="standard" width="430" show_faces="false" action="like" colorscheme="light"></fb:like></div>');
}

但每次当我点击产品facebook初始化所有脚本时,有没有什么好方法可以动态加载按钮?

感谢

1 个答案:

答案 0 :(得分:3)

All Like Buttons在iframe中呈现。如果您使用XFBML方法,Facebook的all.js脚本会在页面上找到<fb:like>标记,并为每个标记创建一个iframe。如果您在脚本运行后添加<fb:like>标记,则需要运行FB.XFBML.parse来处理该标记并生成其iframe。

另一种选择是将新的Like按钮附加为iframe。请务必取消选中Facebook's button generator中的“发送按钮”选项。但是,使用这种方法会丢失发送按钮,并且只能获得标准布局至少400px宽的注释。