2011-03-02 40 views
0

我試圖用這個代碼中插入Facebook的樣箱爲我的網頁:插入Facebook的像盒爲一個jQuery模態對話框

<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> 

它不會在對話框中顯示,任何人都知道出了什麼問題?

感謝,

+0

如果您將它放在對話框之外,它會工作嗎? – 2011-03-02 22:25:09

+0

我已經創建了測試小提琴,如果有人想嘗試:http://jsfiddle.net/AYE8A/ – user194076 2011-03-02 22:31:43

+0

小提琴是相當無用的,因爲你需要的fbml xmlns – 2011-03-02 22:33:34

回答

0

要幫助解決你的問題,可能需要看你要這個腳本來運行整個頁面。這可能是一個問題,不加載jQuery和jQuery UI(對話框是jQuery UI的一部分)框架或一些其他jQuery/Javascript代碼或CSS導致問題。

+0

jQuery正在工作。對話框在頁面加載時打開.. ui也在工作,因爲我可以看到我選擇的主題,只是在對話框中不起作用 – 2011-03-02 22:35:24

+0

正如@Fozzyuw所說,如果沒有看到代碼就很難幫助這裏。 – 2011-03-02 22:36:28

1

您需要在模式顯示

$(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')); 
    }); 
}); 

任何時候當你關閉它,並重新顯示它您需要重新初始化它同時初始化腳本的Facebook。例如,如果您的模式具有製表符或分頁,並在第1頁和第2頁上使用了Facebook。

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

嗨,我注意到當嘗試調用FB:XFBML Obj上的'parse()'方法時發生錯誤。爲避免這種情況,只需等待JS文件文件加載jQuery加載,如下所示:'$('#facebook-jssdk')。load(function(){FB.XFBML.parse();});' – 2014-11-24 09:13:44