当前大家讨论的跨域都是这样的
有 iframe 的,父子,子子,子父子,直间跨。
多窗口的跨域。
我现在有个需求,需要在单窗口跨域。
即 当前窗口 a.com
发送数据,等窗口变成 b.com
接收数据。
比如:
当前是 a.com 中
window.location.href = 'b.com';
window.postMessage('123', '*');
b.com 中
window.addEventListener('message', function(ev) {
console.log(ev.data);
});
很显然,是不 ok 的
第一: 我不知道 a.com
跳转到 b.com
这种方式中,window 是否是同一个? 我猜应该是
第二: 消息发送在前, message 监听在后。肯定是拿不到数据的。
这时候,我就想着先延迟发送看看。
window.location.href = 'b.com';
setTimeout(function() {
window.postMessage('123', '*');
}, 3000);
这个也是不 ok 的,因为 setTimeout 内的代码 压根儿就不会再执行了。
页面跳转只执行完当前代码块,就跳转了,不再执行其它的代码块了。
请教:这种情形,该怎么跨域了?
所以其实你想要的是
快承认吧。