2014-10-04 34 views
0

這裏經過的對話框不能顯示是腳本FB.ui裝載jQuery的AJAX

window.fbAsyncInit = function() { 
      FB.init({ 
       appId  : 'xxxxxx', 
       xfbml  : true, 
       version : 'v2.1' 
      }); 

      $.ajax({ 
       url: 'save.php', 
       dataType: 'JSON', 
       method: 'POST', 
       data: {image_data: img_src, save2server: 'y'}, 
       success: function(response){ 
        FB.ui({ 
         method: 'feed', 
         link: response.url, 
        }, function(r){ 

        }); 
       } 
      }); 
     } 

Ajax請求被成功地和我喊得,但該對話框不顯示up..any線索?

回答

0

您是否包含Facebook SDK腳本?如果沒有,請在打開車身標籤後加入:

<script> 
(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/sdk.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 
</script> 

祝你好運!

0

對於任何人有同樣的問題,這裏就是答案:https://stackoverflow.com/a/7666936/1756281

的FB.login或FB.ui方法必須被要求在Safari瀏覽器的新窗口/彈出一個用戶啓動的操作(點擊)/iframe由FB.UIServer呈現。 如果您嘗試在網絡回撥事件中調用這些方法,它將被阻止,並且會出現您描述的異常