Facebook分享对话框后,饲料岗后不关闭

问题描述:

我有一个饲料职位JS如下。Facebook分享对话框后,饲料岗后不关闭

var feedObj = { 
    method: 'feed', 
    link: link, 
    picture: imagelink, 
    name: name, 
    caption: caption, 
    description: description, 
    redirect_uri: "http://"+(window.location.host)+"/", 
    next:null, 
    app_id: appid, 
    actions: [ 
     { name: text, link: link } 
    ] 
}; 

function callback(response) { 
    if(response){ 
    } 
} 
facebook.ui(feedObj, callback); 

如何确保点击帖子的Feed对话框自动关闭?
我注意到,回调并不总是解雇,这在下面的尝试并不总是

function callback(response) { 
    if(response){ 
     facebook.Dialog.remove(facebook.Dialog._active); 
    } 
} 
+0

控制台上的任何错误?所有浏览器都有相同的行为?另外,为什么你自己把'redirect_uri','next'和'app_id'的值? SDK将为您照顾。 –

工作按照documentation,接下来是不是一个参数。

我明白,与redirect_uri回调没有被调用。 由于redirect_uri被大多数sdks支持,所以您无需使用它。

DEMO

希望这有助于

+2

删除redirect_uri的窍门 –

+0

现在需要redirect_uri。 –

我有一个简单的技巧,以关闭此对话框。做这种工作并不是一种好方法,但它对我来说工作得很好。首先,您必须在您的服务器上创建一个页面(例如closewindow.aspx),然后将此代码粘贴到页面的正文部分。

<script src="js/jquery.js" type="text/javascript"></script> 
<script> 
    $().ready(function() { window.close(); }); 
</script> 

不是设置redirect_uri参数属性此页,如:

redirect_uri=http://www.yousitename.com/closewindow.aspx 

现在这个时候在对话框中,该页面将被称为的redirectUrl,对话框会自动在页面加载时被关闭。

我知道这可能会很棘手,但你知道这个工作的感觉如何。

+3

可能不是官方的方式(不知道是什么),但非常聪明。 – fuzzyvagina

+1

太棒了!一个小问题,但只是为了确保更好的用户体验,您可能希望使用setTimeout来延迟window.close(),并在关闭窗口之前向用户显示一些消息,说明他们的发布是成功的。另外,你可能想用这个JS代码片断关闭窗口 - http://*.com/a/12896858/123545 – ErJab

+1

包括jQuery太方便了,简单的''就够了 –