84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
如QQ登录(http://qzonestyle.gtimg.cn/qzone/openapi/js-sdk-demo.html),在A页面点击qq登陆按钮,弹出新qq登录窗口B,手机扫一扫后登录,B窗口关闭,并且调用A窗口中的retFun函数。
这是怎么做到的?
光阴似箭催人老,日月如移越少年。
A窗口打开B窗口,那么B窗口有个window.opener(window.open或者href打开的都有,IE只有通过window.open打开才有)指向A窗口。
window.opener
A
// window.open(B); // <a target="_blank" href=B>打开B窗口</a> function test() { alert(1); }
B
window.onbeforeunload = function() { if (window.opener) { window.opener.test(); } }
注:需要服务器环境
例外 跨窗口/文档通信可以看下 postMessage 的资料
postMessage
至于扫一扫登录,可以参见 微信扫描二维码登录网页是什么原理,前后两个事件是如何联系的?
这个一定是服务器通知的A,让A调用的,至于服务器如何通知A 这技术有很多,查一下就好了,肯定不是在B窗口里面调用的A
A窗口打开B窗口,那么B窗口有个
window.opener
(window.open或者href打开的都有,IE只有通过window.open打开才有)指向A窗口。A
B
注:需要服务器环境
例外 跨窗口/文档通信可以看下
postMessage
的资料至于扫一扫登录,可以参见 微信扫描二维码登录网页是什么原理,前后两个事件是如何联系的?
这个一定是服务器通知的A,让A调用的,至于服务器如何通知A 这技术有很多,查一下就好了,肯定不是在B窗口里面调用的A