3

我已经为谷歌 OAuth 代码的 oauth 登录弹出窗口编写了 javascript 代码如下

    function authorize(authorize_url,get_token,get_token_secret)
    {
        console.log("acToken is "+get_token);

    var win         =   window.open(authorize_url, "windowname2", "width=800, height=600"); 

   var pollTimer   =   window.setInterval(function() { 
       try
       {
       if (win.document.URL.indexOf(oauth_callback) != -1) {
           console.log("url inside callback"+win.document.URL)
           window.clearInterval(pollTimer);

           win.close();

           getting_access_token(get_token,get_token_secret);
       }
       }catch(e)
       {

       }
   },100);
}

在那个窗口中正在打开 oauth,但是在单击允许后,如果 window.setinterval 函数没有进入,这就是为什么弹出窗口没有在 ie 中关闭,而 chrome 窗口正在正确关闭如何在 ie 中解决这个问题。

4

1 回答 1

0

您应该在新窗口中打开登录页面,然后重定向到成功页面,然后关闭弹出窗口:

page.html

function login() {
    var win = window.open('', 'login.html', 'width=800,height=400');
    win.focus();
}

登录.html

window.location.href = 'success.html'; // or use server-side redirect

成功.html

window.opener.close();
于 2013-10-24T17:24:45.900 回答