使用jQuery添加fb:like-box标签不起作用

时间:2013-03-26 11:12:09

标签: javascript jquery facebook

我尝试通过jQuery向我的主页添加一些带有某些属性的fb:like-box标记,但它会生成一个没有任何属性的标记。

下载我在加载facebook Javascript SDK后添加的代码:

$('<fb:like-box>', {
    'href' : 'http://www.facebook.com/platform',
    'width' : '292',
    'height' : '230',
    'show_faces' : 'true',
    'stream' : 'false',
    'border_color' : '#FFF',
    'header' : 'false'
}).appendTo('#aDiv');

,结果是:

<div id="aDiv"><fb:like-box></fb:like-box></div>

似乎jQuery不喜欢facebook标签,所以有人知道一些解决方法吗?

3 个答案:

答案 0 :(得分:1)

好吧,我假设您已经在页面上初始化了JavaScript SDK,因为需要解析任何XFBML标记。

FB.init()的初始调用初始化页面上的所有现有XFBML标记:

FB.init({
  appId      : 'YOUR_APP_ID', // App ID from the App Dashboard
  status     : true, // check the login status upon init?
  cookie     : true, // set sessions cookies to allow your server to access the session?
  xfbml      : true  // parse XFBML tags on this page?
});

对于初始化后添加的任何其他元素(如您的情况),您需要执行FB.XFBML.parse() function。这将渲染或重新渲染XFBML标记并显示您喜欢的框。

至于属性,你有两个选择

  • 您只需在单个字符串中附加新的框,
  • 即可
  • 或者您可以使用prop() / attr() jQuery函数来设置这些非标准属性。
var likeBox = $('<fb:like-box />');
likeBox.prop('show_faces','true');
likeBox.attr('href','http://www.facebook.com/platform');
$("#foo").append(likeBox);

答案 1 :(得分:0)

试试这个:

var html = $('#aDiv').html();
$('#aDiv').html(html + '<fb:like-box href='http...' width="292" ect...>');

答案 2 :(得分:0)

为什么你不追加整件事

$("#aDiv").append('< fb:like-box 
    href="http://www.facebook.com/platform"
    width="292"
    height="230"
    show_faces="true"
    stream="false"
    border_color="#FFF"
    header="false"
    />');