<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Popup Window</title>
  <style>
    section {
      width: 400px;
      padding: 20px;
      margin-bottom: 10px;
      border: 1px solid #999999;
    }
  </style>
  <script>
    let port;
    function initiate() {
      const button = document.getElementById("button");
      button.addEventListener("click", send);

      const channel = new MessageChannel();
      port = channel.port1;
      port.addEventListener("message", receiver);
      port.start();

      window.opener.postMessage("init", "*", [channel.port2]);
    }
    function send() {
      const message = document.getElementById("message").value;
      port.postMessage(message);
    }
    function receiver(event) {
      const databox = document.getElementById("databox");
      databox.innerHTML += event.data + "<br>";
    }
    window.addEventListener("DOMContentLoaded", initiate);
  </script>
</head>
<body>
  <section id="formbox">
    <form name="form">
      <label for="message">My Message: </label>
      <input type="text" name="message" id="message" required>
      <button type="button" id="button">Send</button>
    </form>
  </section>
  <section id="databox"></section>
</body>
</html>