58 lines
1.2 KiB
HTML
58 lines
1.2 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<style type="text/css">
|
|
body {
|
|
-webkit-user-select: none;
|
|
}
|
|
div.make div, div.nuke div {
|
|
border: 1px solid black;
|
|
cursor: pointer;
|
|
margin: 6px;
|
|
padding: 6px;
|
|
font-size: 140%;
|
|
display: inline-block;
|
|
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h2>Click some!</h2>
|
|
<div class='make'>
|
|
<div>red</div>
|
|
<div>green</div>
|
|
<div>blue</div>
|
|
<div>yellow</div>
|
|
<div>white</div>
|
|
</div>
|
|
|
|
<p>Every ball that drops is a new browser tab.</p>
|
|
|
|
<div class='nuke'>
|
|
</div>
|
|
|
|
<script type="text/javascript">
|
|
"use strict";
|
|
Array.from(document.querySelectorAll("div.make div")).forEach(function(el) {
|
|
el.style.background = el.textContent;
|
|
el.addEventListener("click", function() {
|
|
//add new tab
|
|
var url = `NewWindowChild.html?color=${el.textContent}&text=I%20am%20${el.textContent}`;
|
|
var childWindow = window.open(url);
|
|
|
|
//add button to close it
|
|
var killEl = document.createElement("div");
|
|
killEl.textContent = `Close ${el.textContent} child`;
|
|
killEl.addEventListener("click", function() {
|
|
childWindow.close();
|
|
killEl.parentNode.removeChild(killEl);
|
|
});
|
|
|
|
document.querySelector("div.nuke").appendChild(killEl);
|
|
});
|
|
});
|
|
|
|
|
|
</script>
|
|
</body>
|
|
</html> |