Je n'ai pas pour habitude de développer des ouvertures de fenêtres dans de nouveaux onglets, c'est contraires aux normes du W3C et j'approuve le fait que c'est à l'utilisateur de décider comment ouvrir son lien.

Mais il faut parfois savoir faire des exceptions, et comme je ne le fais pas souvent, je ne retiens pas ces instructions Javascript...

C'est donc l'occasion de faire un mini-tuto/pense-bête

Un page principale

Minimaliste au possible, sans doctype ni rien !

<html>
	<head>
		<script>
			function ouvrirPopup()
			{
				maPopup = window.open("page1.html");
				maPopup.focus();
				maPopup.onbeforeunload = function(){fermeturePopup();};
			}
			
			function fermeturePopup()
			{
				document.getElementById("text").innerHTML = "Bravo !";
			}
		</script>
	</head>
	<body>
		<p onclick="ouvrirPopup()">Ouvre moi !</p>
		<div id="text"></div>
	</body>
</html>

La fonction ouvrirPopup() est déclenchée par le clic sur le paragraphe.

<p onclick="ouvrirPopup()">Ouvre moi !</p>

 Elle a pour effet d'ouvrir page1 dans un onglet, basculer sur cet onglet et attacher une fonction à la fermeture de celle ci

maPopup = window.open("page1.html");
maPopup.focus();
maPopup.onbeforeunload = function(){fermeturePopup();};

 La fonction ferturePopup() écrira juste un petit "Bravo" en dessous du paragraphe. Histoire de montrer qu'elle a bien été déclenchée à la fermeture de l'onglet.

document.getElementById("text").innerHTML = "Bravo !";
<div id="text"></div>

Une page à ouvrir

Le fichier page1.html

<html>
	<head>
		<script>
			function fermerPopup()
			{
				window.close()
			}
		</script>
	</head>
	<body>
		<p onclick="fermerPopup()">Ferme moi !</p>
	</body>
</html>

Il n'y a ici qu'un paragraphe qui fermera l'onglet au clic.

On peut également fermer l'onglet avec la croix du navigateur, peu importe, la page d'index capturera la fermeture dans les deux cas.

 

Ce n'est pas plus compliqué que ça :)