0

我试图fb:like-box通过 jQuery 向我的主页添加一个带有一些属性的标签,但它会导致一个没有任何属性的标签。

这是我在加载 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 标签,所以有人知道一些解决方法吗?

4

3 回答 3

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 标签并显示您的喜欢框。

至于属性,你有两个选择

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

尝试这个:

var html = $('#aDiv').html();
$('#aDiv').html(html + '<fb:like-box href='http...' width="292" ect...>');
于 2013-03-26T11:15:53.063 回答
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"
    />');
于 2013-03-26T11:18:01.483 回答