zoukankan      html  css  js  c++  java
  • 监听 window.open 打开的窗口关闭并回调

    第三方的登录的解决方案通常有两种方式,一是打开一个新的标签页,然后登录回调回来; 二是通过父窗口打开一个子窗体去第三方登录,登陆成功时关掉子窗体回到父窗口。

    这里写图片描述

    问题来了

    我的父窗体怎么样才知道子窗体被关闭了呢? 
    查了下 w3c 里面的文档,貌似并没有类似 onWindowClose 这样的回调函数。

    解决方案

    将打开的这个窗口对象赋值给一个 jQuery 对象,在主窗体里轮询判断该对象的状态

    1.打开第三方登录窗口

    $windowObj  = window.open("https://graph.qq.com/oauth/show?which=Login&client_id=1000001&redirect_uri=http://127.0.0.1:3000/login/qq_after_login", "q",'width=800,height=500');

    2.在子窗体中登录成功时执行关闭自己的方法

    self.close();

    3.然后在主窗体里面轮询执行

    $windowObj  = null;
    
    var loop = setInterval(function() {     
        if($windowObj  != null && $windowObj.closed) {    
            clearInterval(loop);    
            //do something 在这里执行回调
    
        }    
    }, 800); 






    注:转自尾巴很大的小平的博客http://blog.csdn.net/xiaoping0915/article/details/76165263
  • 相关阅读:
    Death Race
    中国队吃中药了?
    (zt)让我们相亲相爱一百年不动摇
    Subversion & Arfa Karim Randhawa
    要是有时间的话……
    (zt)山王
    (zt)东方红
    Oracle 备份 与 恢复 概述
    Solaris 网络 配置
    RAID 磁盘阵列 详解
  • 原文地址:https://www.cnblogs.com/jiangbotao233/p/7451560.html
Copyright © 2011-2022 走看看