Ciao,
Per il suono sui link che vanno a pagine esterne dovrai modificare lo script e fare in modo che il suono sia presente anche nella pagina di arrivo. Al momento del cambio di pagina il suono viene interrotto, e non si può ritardare direttamente il cambio... la cosa migliore per i link esterni probabilmente è suonare sull'onload della pagina di arrivo.
Per il w3c... bgsound non è un tag accettato da xhtml1.0 pertanto non si può utilizzare. L'embed può dare problemi con ie, pertanto la cosa migliore potrebbe essere l'utilizzo dell'<object>... anche qui però i browser possono avere comportamenti diversi.
Per IE<7 potresti immaginare il codice seguente nel body:
<object data="click.wav" type="audio/x-wav" width="0" height="0" id="xxx" classid="CLSID:05589FA1-C356-11CE-BF01-00AA0055595A">
<param name="src" value="click.wav">
<param name="autoplay" value="false">
<param name="autoStart" value="0">
<param name="ShowDisplay" value="0">
<param name="ShowControls" value="0">
</object>
- rimuovere la stopsound (sia dallo script che dall onfocus)
- e modificare la playsound nello script in una semplice:
function playSound() {
document.getElementById("xxx").Run();
}
La cosa però funzionerebbe solo con IE<7 (caricando di nascosto il controllo di wmp). Per IE7 e/o firefox dovresti invece utilizzare un object diverso:
<object type="audio/x-wav" data="click.wav" width="0" height="0">
<param name="src" value="click.wav">
<param name="controller" value="false" >
<param name="autoplay" value="false">
<param name="autoStart" value="0">
</object>
Potresti in questo caso sfruttare i commenti condizionali:
<!--[if gte IE 7]> <!-->
... codice IE7
<!--<![endif]-->
<!--[if lt IE 7]>
... codice IE<7
<!--<![endif]-->
<!--[if !IE]> <!-->
... codice non IE
<!--<![endif]-->
Non ho mai provato comunque una cosa del genere, dovresti fare qualche tentativo e documentarti un po'sulla cosa... qualche informazione utile qui:
PS: Va bene il copia-incolla, ma xxx è solo un placeholder per un id, non c'è bisogno di mantenerlo...
Ciaociao