Source code
Revision control
Copy as Markdown
Other Tools
<!DOCTYPE HTML>
<html>
<head>
  <title>User activation popup</title>
</head>
<body>
<iframe sandbox="allow-top-navigation-by-user-activation allow-scripts allow-same-origin"></iframe>
<script>
  window.addEventListener("message", (e) => {
    if (e.data === "triggerIframeLoad") {
      // Load into the the iframe a script which notifies the opener of top level navigation or if it was prevented. 
      let script = `window.opener.postMessage("topNavigation");`;
      frames[0].frameElement.src = `javascript:try{window.top.location='javascript:${encodeURIComponent(script)}';} catch (e) {window.top.opener.postMessage("topNavigationBlocked");}`;
    } else {
      window.opener.postMessage("unexpected");
    }
  });
</script>
</body>
</html>