Comment mettre un fond sonore continu pour tout le site, qui ne s'arrête pas quand on change de page ?

Avec des cadres

La solution la plus simple consiste à utiliser des cadres, un cadre de largeur 100% pour le site proprement dit, et un cadre de 0% où on mettra la page qui chargera la musique; ça peut se coder comme suit :
<FRAMESET ROWS="100%,*">
     <FRAME NAME="site" SRC="accueil.html" ....>
     <FRAME NAME="music" SRC="son.html">
</FRAMESET> 
Comme ça, le cadre "music" où on aura chargé la musique restera en place... jusqu'au premier lien avec TARGET="_top", qui peut ne jamais venir dans le site. Ce cadre sera invisible et la musique ne s'arrêtera pas.
Le problème est que certains visiteurs n'apprécient pas du tout la musique en boucle et qu'ils tiennent beaucoup à ce qu'ils puissent l'arrêter. Ça peut s'arranger facilement : il suffit de prévoir un lien qui chargera une page vide dans le cadre invisible :
  <A HREF="stop.html" TARGET="music">Arrêter la musique</A>
Toutefois, tout le site s'installe dans une structure de cadre, ce qui n'a pas que des avantages.

Avec une fenêtre popup

Une solution alternative sans cadre consiste à charger la page de musique dans une petite fenêtre popup, au moyen d'un petit script
<SCRIPT>
ws=window.open("son.html","music","width=200,height=100");
</SCRIPT> 
La console de commande du son restera visible dans cette fenêtre, à la disposition de tout visiteur susceptible... à condition que cette fenêtre reste visible, ce qui n'est pas garanti pour une petite fenêtre fort en danger d'être complètement recouverte par la fenêtre principale. Il y a bien un menu « Fenêtre » qui permettrait de la rappeler, mais le visiteur lambda aura-t-il l'idée de s'en servir ? Pour bien faire, il faudra donc prévoir un lien pour la faire revenir au premier plan, et il faudra mettre ce lien dans toutes les pages. (Hé oui, si on refuse les cadres, il faut bien consentir à quelques menues corvées :-)))
Si on se contente d'arrêter la musique, un simple lien
 <A HREF="stop.html" TARGET="music">Arrêter la musique</A>
vers une page vide stop.html sera suffisant, avec l'avantage annexe de faire revenir le popup au premier plan, ce qui permettra au visiteur de le fermer.

Si on tient absolument à faire revenir la console sans arrêter la musique, on peut s'en tirer sans nouveau javascript... en réintroduisant une pincée de cadres : il suffit que la page son.html qu'on charge dans le popup soit un frameset avec 2 cadres,
— un cadre "music" de largeur nulle dans lequel on mettra la page vide
— un cadre "music2" de largeur 100% dans lequel on chargera la musique et sa console.
Le lien précédent rechargera le cadre invisible et fera revenir tout le popup au premier plan.

Démonstration

(i) Cliquez ici pour lancer une musique dans un popup

(ii) Faites glisser le popup au milieu de la fenêtre principale et cliquez dans cette dernière. Le popup disparaît, mais la musique continue.

(iii) Cliquez ici pour rappeler le popup sans arrêter la musique. La console est à votre disposition.

(iv) Cliquez ici pour arrêter directement la musique (par envoi d'un fichier vide vers le cadre du popup portant la musique).

Charles – (TOM) – Patrice