加载Facebook的URL源流按需将无法正常工作

时间:2012-01-12 08:29:05

标签: javascript jquery facebook facebook-like

我正在尝试显示我网站网址的Facebook Feed,以向我的用户显示用户喜欢的内容,

我所做的是:

导入facebook的脚本

<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/es_LA/all.js#xfbml=1&appId=82743675977";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

拨打电话:

function showFeed(){
        return '<div class="box"><h2><img src="http://www.google.com/s2/favicons?domain=keepourlinks.com"/> keepyourlinks </h2><div class="fb-activity" data-site="keepyourlinks.com" data-width="300" data-height="500" data-header="false" data-border-color="white" data-recommendations="false"></div></div>';
    }

    $(document).ready(function(){
        $('#show').click(function(){
            $('#feed').html(showFeed());

        });
    });

可在此处测试:http://jsfiddle.net/7cPDK/6/

知道如何实现它吗?

PD:我喜欢这样做(根据需要加载它:不在页面加载上加载并按需显示)

1 个答案:

答案 0 :(得分:1)

我认为您只想将脚本移动到点击处理程序:

1。)从html中删除脚本:

<div id="fb-root"></div>
<a id="show" href="#">Show What facebook users share
<div id="feed"></div>

2。)将其粘贴到点击处理程序中,如果存在,则首先添加标识为facebook-jssdk的元素:

$('#show').click(function(){
    $('#facebook-jssdk').remove();
    (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/all.js#xfbml=1&appId=82743675977";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
    $('#feed').html(showFeed());
});

另见example