在实现GitHub的oAuth登录时,需要解决页面窗口间跨域值传递的问题,so,把存在很久的页面间传递值的方式翻了出来。
假设A页面使用window.open
打开了B页面的情况下
当A、B页面域相同时
B页面中直接通过window.opener.functionInA(params)
调用A页面中声明的functionInA(params)
,也可以直接操作A页面中的元素。
当A、B页面域不同时(跨域)
需要借助window.postMessage()
和window.addEventListener()
。