You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改FB.login()的display type?Facebook登录弹窗问题求助

解决Facebook登录弹窗尺寸过大及display类型警告问题

嘿,我来帮你搞定这个Facebook登录的弹窗问题!先给你拆解一下警告信息的意思:它说你现在用了page类型的display模式,这种模式是给全屏页面设计的,放在弹窗里就会导致尺寸过大,而Facebook的JS SDK其实能自动根据当前环境(比如是全屏页面还是弹窗)选择最合适的display类型,所以我们要做的就是让SDK自己来处理这件事。

下面是具体的解决步骤:

1. 检查SDK初始化代码,移除手动指定的display参数

首先去看你初始化Facebook SDK的代码(一般是FB.init()那部分),如果里面手动设置了display: 'page',直接把这行删掉就行。比如原来的初始化代码可能是这样:

FB.init({
  appId: '你的应用ID',
  autoLogAppEvents: true,
  xfbml: true,
  version: 'v18.0',
  display: 'page' // 就是这行搞的鬼,删掉它!
});

删掉display参数后,SDK会自动根据当前环境选择popup、touch或者page类型,弹窗的尺寸也会自动适配。

2. (可选)手动指定display为popup类型

如果你想强制让登录弹窗用适配弹窗的模式,也可以直接在FB.login的选项里添加display: 'popup'参数,修改你的代码如下:

export function facebookLogin() { 
  return new Promise((res: any, rej: any) => { 
    FB.login((response: FacebookLoginCallbackResponse) => { 
      if (response.authResponse) { 
        res(response.authResponse); 
      } else { 
        rej(); 
      } 
    }, {scope: "public_profile, email", display: 'popup'}); // 这里加上display参数
  }); 
}

不过官方更推荐让SDK自动判断,所以优先尝试第一步的方法。

为什么会出现这个问题?

你的代码里FB.login本身没指定display类型,但警告还是出现了,大概率是在SDK初始化的时候全局设置了display: 'page',导致所有FB的对话框都用了这个不适合弹窗的模式。只要移除这个全局设置,问题就能解决。

修改完之后再测试一下,弹窗尺寸应该会变小,底部的警告也会消失啦!

内容的提问来源于stack exchange,提问作者Velidan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:46:06