跨文档通信之窗体通信实例页面
回到相关文章 »代码:
本页JS代码:
var message = ''; document.querySelector("#boy").onclick = function() { message = '我是男生,帅气的男生!'; }; document.querySelector("#girl").onclick = function() { message = '我是女生,漂亮的女生!'; }; window.addEventListener('message', function(e) { var interval; // 检测来源 if (e.origin == 'https://www.zhangxinxu.com') switch (e.data) { case 'ready': // e.source 为发送的 window 对象 interval = setTimeout(function(win) { win.postMessage(message,'https://www.zhangxinxu.com'); }, 2000, e.source); break; case 'closed': clearInterval(interval); break; } }, false);
效果:
男生点这个
女生点这个
打开页JS代码:
window.addEventListener('message', function(e) { document.querySelector("#message").innerHTML = "接受到的信息是:" + e.data; }, false); // 当文档加载完毕, 给父级来源发送信息。 window.addEventListener('load', function(e){ e.currentTarget.opener.postMessage('ready', 'https://www.zhangxinxu.com'); }, false); // 当窗体关闭,告诉父级窗体已经关闭了。 window.addEventListener('unload', function(e){ e.currentTarget.opener.postMessage('closed', 'https://www.zhangxinxu.com'); }, false);