初始化代码:
FB.init({
appId: '123456789012345',
channelUrl: 'http://localhost/Some/Url/FacebookChannel',
status: true,
cookie: true,
oauth: true,
xfbml: true
});
以下代码通过 onclick 调用:
FB.ui({
method: 'feed',
name: settings.facebookShareName,
link: settings.facebookLinkUrl,
caption: settings.facebookShareCaption,
description: settings.facebookShareDescription,
message: message,
display: 'popup'
});
这段代码在 FF 和 Chrome 中运行良好,并且大部分在 IE8 中运行。显示弹出窗口,用户可以发布到他们的墙上,但提交后,窗口不会关闭。它会变成白色,没有进一步的交互,但必须由用户手动关闭。
为什么 IE 中的窗口不会自动关闭,和/或是否有任何解决方法可以强制弹出窗口关闭?
编辑:
这个问题可能与这个未解决的问题有关bug.
我也遇到了同样的问题,并且一直无法从 Facebook 获得回调函数的响应。我在 console.log 中没有看到任何内容,也没有在函数中看到任何警报。
我的解决方案是在FB.ui的redirect_uri中放置一个URL,该URL通过self.close(或window.close)转到HTML页面。 FB.ui 弹出窗口在用户输入后重定向到那里并立即关闭。请记住更改 FB 应用程序的站点 URL 设置,使其与文件所在的域相匹配。
这是我的代码,与表单的提交操作相关。函数(响应)回调仍然存在,但未使用。如果有人发现语法错误,请对其进行评论。
FB.ui ({
method: 'feed',
name: '',
link: '',
picture: '',
caption: '',
description: '',
actions: {name:'',link:''},
redirect_uri: 'http://.../self.close.html'
},
function(response) {
console.log(response);
if (response && response.post_id) {
alert('yes');
self.close();
} else {
alert('else yes');
}
});
self.close.html 中的代码行:
<script type="text/javascript">self.close();</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)