JSFiddle - React, Tailwind, and code Playground

HTML

<div class="overlay" id="welcome-message" style="display: none">
  <h1>Hey, welcome to my site. Are you a human?</h1>
  <button>Yes</button>
</div>
<script>
// show the welcome message immediately if JS is enabled
document.getElementById('welcome-message').style.display = 'block';
</script>

<section id="links-wrap">
  <a href="/page-A.html" target="_blank">Page A</a>
  <a href="/page-B.html" target="_blank">Page B</a>
  <a href="/page-C.html" target="_blank">Page C</a>
  <a href="/page-D.html" target="_blank">Page D</a>
</section>

<div id="rapid-click-box">
  Click me really fast and see what happens!
</div>

CSS

.overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 10%;
  background-color: rgba(0, 0, 0, .5);
  color: #fff;
  text-align: center;
}
#rapid-click-box {
  display: inline-block;
  width: 100px;
  padding: 1em;
  color: #fff;
  background-color: green;
}

JavaScript

function openWindowFromLink(link, idx) {
  var top = idx % 2 * 600;
  var left = Math.floor(idx/2) * 600;
  var win = window.open(link.href, 'Window '+ top +'x'+ left, 'width=600,height=600,top='+ top +',left='+ left);
  if (win) {
  	link.style.display = "none";
  }
  return win;
}

function handleLinkClick(ev) {
  ev.preventDefault();
	var link = ev.target;
  var idx = 0;
  var prev = link.previousSibling;
  while (prev) {
    if (prev.nodeType === 1) {
    	idx++;
    }
    prev = prev.previousSibling;
  }
  openWindowFromLink(link, idx);
}

function runApp() {
  // Use event delegations to listen for link click events
  var linksWrap = document.getElementById('links-wrap');
  linksWrap.addEventListener('click', handleLinkClick);
  
  // Build a list of links (without text nodes)
  var links = [];
  for (var i = 0, l = linksWrap.childNodes.length; i < l; i++) {
  	if (linksWrap.childNodes[i].nodeType === 1) {
    	links.push(linksWrap.childNodes[i]);
    }
  }
  
  // Set up a rapid click box to allow opening many windows
  var clickBox = document.getElementById('rapid-click-box');
  var clickCount = 0;
  clickBox.addEventListener('click', function handleRapidClick (ev) {
    var link = links[clickCount];
    if (link.style.display !== 'none') {
    	openWindowFromLink(link, clickCount);
    }
    
    if (++clickCount === links.length) {
      clickBox.removeEventListener('click', handleRapidClick);
      clickBox.style.display = 'none';
    }
  });
  
  // Finally try and open all windows at once
  var button = document.getElementsByTagName('button')[0];
  button.addEventListener('click', function handleYesClick (ev) {
    ev.preventDefault();
    button.removeEventListener('click', handleYesClick);
    document.getElementById('welcome-message').style.display = 'none';
    
    for (var i = 0, l = links.length; i < l; i++) {
      if ( !openWindowFromLink(links[i], i) ) {
      	break;
      }
    }
    
    if (i === links.length) {
   ...