将Facebook Like-box插入到jQuery模式对话框中

时间:2011-03-02 22:21:16

标签: javascript jquery facebook

我正在尝试使用此代码为我的页面插入Facebook类似框:

<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like-box href="http://www.facebook.com/pages/xxxxx/xxxxx" width="285" show_faces="true" stream="false" header="false"></fb:like-box>

我正在尝试将其添加到jQuery模式对话框中,所以我这样做:

    <script type="text/javascript">
    $(document).ready(function() {
    $( "#facebook" ).dialog({
        autoOpen: true,
        height: 350,
        width: 350,
        modal: true

    });
    });
    </script>

<div id="facebook" title="Like us">
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like-box href="http://www.facebook.com/pages/xxxxx/xxxxx" width="285" show_faces="true" stream="false" header="false"></fb:like-box>
</div>

它没有显示在对话框中,任何人都知道问题是什么?

谢谢,

2 个答案:

答案 0 :(得分:1)

您需要在显示模式的同时初始化Facebook脚本

$(document).ready(function() {
    $("#myModal").on("show", function() {
        (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/en_US/all.js#xfbml=1";
            fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));
    });
});

任何时候你解雇它并重新显示它你需要重新初始化它。例如,如果你的模态有标签或分页,并且在第1页和第2页使用了facebook。

if(pageId == 1 || pageId == 2) {
    FB.XFBML.parse();

答案 1 :(得分:0)

为帮助解决您的问题,可能需要查看您希望运行此脚本的整个页面。这可能是一个问题,没有加载jQuery和jQuery UI(对话框是jQuery UI的一部分)框架或其他一些导致问题的jQuery / Javascript代码或CSS。