TAG
JavaScript
Result
Run
License
<button type="button" id="btn-openwin">Open new window</button>
(function() { let windowDialog; window.addEventListener("DOMContentLoaded", () => { const elBtn = document.getElementById("btn-openwin"); elBtn.addEventListener("click", e => { let left = (screen.width - 200) / 2; let top = (screen.height - 100) / 2; windowDialog = window.open('', '', `left=${left},top=${top},width=200,height=100`); let elTestBtn = document.createElement("button"); elTestBtn.textContent = "Send message to opener"; elTestBtn.addEventListener("click", sendMsgToOpener); windowDialog.document.body.append(elTestBtn); }); function sendMsgToOpener() { try { windowDialog.opener.postMessage(windowDialog.document.body); } catch(error) { windowDialog.opener.dispatchEvent(new Event("messageerror")); } } }); window.onmessageerror = e => { console.log("Event fired to message error."); windowDialog.close(); }; window.onmessage = e => { console.log("Event fired on receive message."); windowDialog.close(); }; })();
Console
expand_less
License
License
by DevDic
Close