通过javascript打开facebook连接窗口
Opening facebook connect window via javascript?
当有人试图通过facebook登录我的网站时,他会被重定向到一个页面,在那里他可以看到所有请求的权限,并单击允许/禁止这些权限。
有没有办法让这个页面通过javascript作为分层窗口打开,而不让用户离开我的网站?例如,我的网站会在后台,而facebook连接窗口则在其上方徘徊。
有什么想法吗?
答案是否定的。此外,您不能在IFrame中加载登录页面,因为Facebook为该页面设置了框架断路器。
您正在讨论的页面称为OAuth对话框。默认情况下,请求用户登录您的应用程序将导致页面重定向,因为"display"参数设置为"page"(其他值包括:popup、iframe、touch和wap)。您想要的是在显示设置为"iframe"的情况下调用此对话框。然而,文档中指出:"如果指定iframe,则必须具有有效的access_token。"而且,要获得access_toke,用户需要首先登录到您的应用程序。因此,您将无法在嵌入式IFrame中显示登录页面。
但是,一旦用户使用基本权限集授权您的应用程序,您可能会提示该用户获得额外权限,对话框的显示模式为"iframe"(因为您有access_token)。
我在弹出窗口中使用Facebook Connect,它运行得很好。
1) "伪造"Facebook登录按钮
取一个按钮的屏幕截图,用属性为的a标签包装它的img标签
href="<?= $facebook->getLoginUrl(...); ?>"
onclick="facebookPopup(this.href); return false"
2) 创建Javascript弹出函数
function facebookPopup (url) {
popup = window.open(url, "facebook_popup",
"width=620,height=400,status=no,scrollbars=no,resizable=no");
popup.focus();
}
3) 创建FB Connect"着陆页"
创建一个php文件,在用户完成连接对话框时处理用户的数据,例如,如果他是新用户,请保存他的用户名和facebookuid,或者如果他的ID已知,则只让他登录。然后关闭弹出菜单并通过Javascript刷新主页:
function CloseAndRefresh()
{
window.opener.location.href = window.opener.location.href;
window.close();
}
您可以通过<body onload='CloseAndRefresh()'>
触发该功能
请记住在登录URL(redirect_uri)中指定登录页面的URL。此外,如果您在登录URL中指定'display'=>'Popp',它将显示"权限请求"对话框的精简版本。
我支持David的回答。
此外,如果你以某种方式在iframe或div中加载登录对话框,用户将无法判断他/她是否真的在向Facebook或其他网站提交登录凭据。
无法发表评论。:(
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 防止Iframe窗体在新窗口中打开
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 调整窗口大小时,可拖动的对象会出现在容器外部
- Javascript排序的图像弹出窗口..可以't单独弹出
- 窗口大小html css
- 如何将火狐调试器连接到带有WebDriver扩展的窗口
- 使用 jquery 打开 RDP 连接窗口 - 客户端
- 连接字符串以打开带有 控件的窗口弹出窗口
- “尝试使用断开连接的端口对象”,同时将邮件从内容发送到 Chrome 扩展程序中的弹出窗口
- AngularJS/Cordova应用程序中网络连接断开时显示弹出窗口
- 如何断开JavaScript弹出窗口与打开程序的连接
- 将jQuery移动应用程序连接到服务器数据库,并在互联网连接关闭时打开弹出窗口
- 重新加载后重新连接弹出窗口
- Firebase持久性-与多个浏览器窗口断开连接
- 是否有可能从java applet将OutputStream连接到浏览器的下载窗口?
- Facebook连接墙张贴只作为弹出窗口.如何改变这一点
- 我可以让SignalR在设置窗口位置时不断开连接吗?
- 通过javascript打开facebook连接窗口
- 在PhoneGap窗口.location.assign()中连接到服务器超时