如何在最大化的浏览器窗口中居中FB.login()弹出窗口?

时间:2013-07-10 19:15:38

标签: facebook facebook-javascript-sdk

基本上,这是我的js代码。

<script>
window.fbAsyncInit = function() {
FB.init({
appId: '<?php echo $appId; ?>',
cookie: true,
xfbml: true,
oauth: true,
channelUrl: '//www.domain.com/channel.html'
});
FB.Event.subscribe('auth.login', function(response) {
window.location.reload();
});
FB.Event.subscribe('auth.logout', function(response) {
window.location.reload();
});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
function login() {
    FB.login( function(resp) {
        //not important atm}
    }, {scope: 'email, user_location, user_website'} );
}
</script>

一个按钮用于调用函数login()     

代码工作正常。它与PHP sdk配对,我可以进行身份​​验证。问题是弹出窗口。当浏览器窗口最大化时(这在三台不同的计算机上的IE和FF上是一致的。禁用插件)弹出窗口正确地居中显示,但水平显示在屏幕的绝对右侧。当窗口未最大化时,它会居中。 fb-root div紧跟在body标签之后,我尝试的所有东西都没有修复它。之前的用户表示他们已经通过覆盖window.open()和编辑left属性来修复此问题,但他们从未真正详细说明如何执行此操作。由于sdk是从FB获取的,因此不可能对其进行修改。此外,我更愿意使这段代码有效。

此外,在测试服务器上的空白页面上使用的这个js代码也提供了完全相同的错误。我认为它可能是SDK代码的一个问题,但我不确定。任何有关如何使其工作,黑客与否的想法,都表示赞赏。我一直在努力工作!

编辑:差点忘了。当我使用xfbml登录按钮时,弹出窗口很好。

0 个答案:

没有答案