堆栈上有几个与我的问题类似的问题,但没有一个回答我的问题,所以...
ajax调用返回用于创建like按钮的标准html代码:
<div class="fb-like" data-href="http://www.website.com" data-send="true" data-width="450" data-show-faces="true"></div>
当使用'inspect element‘查看时,此html确实会显示在源代码中,但它不会呈现,即按钮应该位于的空间是空的。有没有我应该使用的渲染函数?
如有任何提示,我们将不胜感激!
编辑:这是ajax请求和解析--“喜欢”按钮和一些其他文本一起放在“# the request”中(它是从question.php回显的)。
$("#thequestion").load("/thought/question.php", { ans: choice, id: questionId } );
$("#graph").load("/thought/graph.php", { id: questionId } );
$("#fbCommentsPlaceholder").html("<div class='fb-comments' data-href='http://qanai.com/thought/#" + questionId + "' data-num-posts='2' data-width='470'></div>");
FB.XFBML.parse();
eval(document.getElementById('thequestion').innerHTML);
eval(document.getElementById('graph').innerHTML);
(我知道eval是邪恶的)
编辑2:如果在ajax调用之后手动执行FB.XFBML.parse();
(在控制台中),则会出现like按钮。谢谢
发布于 2012-01-22 22:01:39
您必须在ajax调用之后调用FB.XFBML.parse();
。
文档:https://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse/
编辑:现在我看到您正在尝试将内容加载到$('#thequestion')
中。.load
接受在请求完成后运行的回调。你应该这样做:
$('#thequestion').load('/my/url', { my: 'params' }, function() {
FB.XFBML.parse();
});
https://stackoverflow.com/questions/8961567
复制相似问题