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
  • 相关阅读:
    ovs QOS
    OpenvSwitch端口镜像
    MyCat入门指南
    Mycat跨分片Join
    MyCAT 命令行监控
    MyCat的分片规则
    FreeMarker初探--介绍
    FreeMarker初探--安装FreeMarker
    linux 安装配置zookeeper
    Maven 环境搭建及相应的配置
  • 原文地址:https://www.cnblogs.com/jiangbotao233/p/7451560.html
Copyright © 2011-2022 走看看