FB.ui回调未发生,窗口没有自动关闭。

3
在父页面中,我有一个分享按钮来调用FB.ui()。我点击按钮,然后FB分享弹出模态框作为单独的窗口,然后关闭我的父页面。回到我的FB分享窗口并分享内容到fb墙上。当我点击分享按钮时,窗口变成白色页面(网址是https://www.facebook.com/dialog/feed)。而且FB.ui()的回调没有被调用。
我们有解决方案吗?至少我想让回调起作用。 我尝试添加"redirect_uri",如此帖子所建议FB.ui feed not giving a callback,但它没有改变任何东西。
/* FB init */
window.fbAsyncInit = function() {
    FB.init({
        appId  : '',
        status : false,
        xfbml  : false,
    });
};

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

shareButton.on('click', function(e) {
    submitPost();
});

/* the function for share*/
    function submitPost() {
        FB.ui({
            method: 'feed',
            name: '',
            link: '',
            picture: '',
            caption: '',
            description: '',
        }, function(response) {
            if (response && response.post_id) {
                // do something
            }
        });
    }

除非我们看到你的代码,否则我们怎么能理解正在发生的事情呢? - Sahil Mittal
你在哪里调用了 submitPost 函数?我在代码中没有看到。 - Sahil Mittal
你为什么要关闭父窗口? - Sahil Mittal
这是用户可能的行为。我想在用户分享帖子后做一些事情,但在这种情况下,回调没有发生,因此它破坏了预期的流程。 - user1735940
我不认为这种情况会发生!用户为什么会在弹出窗口仍然活动的情况下关闭父窗口。无论如何,在这种情况下,你什么也做不了。由于页面被销毁,它背后的代码也被销毁了;所以为什么回调会发生呢。 - Sahil Mittal
显示剩余3条评论
1个回答

1
发现一种解决方案:使用旧版的FB Javascript SDK(2012年),并添加“redirect_uri”。FB.ui feed not giving a callback
    FB.ui({
        method: 'feed',
        name: '',
        link: '',
        picture: '',
        caption: '',
        description: '',
        redirect_uri:'http://.../self.close.html'
    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接