ajax - ajax 调用后渲染 'like' 按钮

标签 ajax facebook facebook-like

堆栈中有几个问题与我的类似,但没有一个能回答我的问题,所以...

ajax 调用返回用于创建点赞按钮的标准 html 代码:

<div class="fb-like" data-href="http://www.website.com" data-send="true" data-width="450" data-show-faces="true"></div>

当使用“检查元素”查看时,此 html 确实显示在源代码中,但未呈现,即按钮应为空白的空间。是否有一些我应该使用的渲染函数?

如有任何提示,我们将不胜感激!

编辑:这是 ajax 请求和解析 - “喜欢”按钮与其他一些文本一起放在“#thequestion”中(从 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:如果 FB.XFBML.parse(); 在 ajax 调用后手动执行(在控制台中),则会出现类似按钮。 谢谢

最佳答案

您必须在 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();
});

文档:http://api.jquery.com/load/

关于ajax - ajax 调用后渲染 'like' 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8961567/

相关文章:

php - Facebook风格的多图片上传

facebook - 使用 facebook 点赞按钮时,评论弹出窗口消失,取而代之的是出现 "confirm"按钮

javascript - 固定 Facebook 页面点赞按钮

javascript - jquery $.post 不起作用

javascript - 在通过 AJAX 传递给 JavaScript 函数的 HTML 字符串中插入 PHP 变量?

ios - PresentShareDialog 返回 nil 的原因是什么?

javascript - 带有 NodeJS webhook + CasperJS 的 FB Messenger Bot

facebook - 元组 :type article vs website for Individual Web Pages That Are Not Articles

javascript - 如何将 jQuery .load 方法与 jsfiddle 回显功能结合使用?

javascript - 使用 jQuery 从 COMBO BOX 中获取选定的值