1

我在这里使用了 Chris Heald 的回答:“http://stackoverflow.com/questions/4491433/turn-omniauth-facebook-login-into-a-popup”,效果很好。

一个问题在于重定向。我正在使用 Devise 和 Oauth 进行 Facebook 登录 - 我希望在登录后关闭弹出窗口,并在登录/注册后将用户重定向到正确的页面。

出于某种原因,现在,在弹出窗口中加载了正确的路径,并且弹出窗口没有关闭。我想我错过了一些非常基本的东西。有任何想法吗?我是个彻头彻尾的JS新手!!

弹出窗口的 JS:

function popupCenter(url, width, height, name) {
    var left = (screen.width/2)-(width/2);
    var top = (screen.height/2)-(height/2);
    return window.open(url, name, "menubar=no,toolbar=no,status=no,width="+width+",height="+height+",toolbar=no,left="+left+",top="+top);
  }

  $("a.popup").click(function(e) {
    popupCenter($(this).attr("href"), $(this).attr("data-width"), $(this).attr("data-height"), "authPopup");
    e.stopPropagation(); return false;
});

用于重定向的 JS:

if(window.opener) {
    window.opener.location = <%= after_sign_in_path %>;
    window.close()
  }
4

1 回答 1

0

您确定您的 after_sign_in_path 在引号中吗?你可能想试试这个:

window.opener.location = "<%= after_sign_in_path %>"

我怀疑窗口没有关闭,因为在执行该行之前存在 javascript 错误。

于 2012-11-07T12:57:24.317 回答