我有一个父母页面" A"它嵌入了iFrame" B"。它们不属于同一个域。
父窗口" A"帖子到框架" B"我们想登录。框架" B"接收消息,并启动Google的OAuth 2.0流程(javascript)。
框架" B",作为身份验证工作流程的一部分,调用方法 - gapi.auth.authorize(params,callback);
此方法将框架" C"嵌入框架" B",并注册另一个消息处理程序。现在,我们在同一页面上有两个消息处理程序(B)。首先,我们编写了$(window).on(" message",fnc)处理程序,但是现在我们还有一个来自google api的处理程序,它与它的iFrame对话(C)。
这引起了问题和混乱。当消息到达B时 - 会发生什么?谁得到了它?
为清楚起见 - 这里是位于框架中的消息处理程序的代码" B"。
$(window).on('message', function(e) {
// make sure the origin is what we want. we LOSE google's events here!
if ( isSafe( e.originalEvent.data ) ) {
// do stuff
}
});