L'uso di filmati Flash in un sito, quando ben realizzati e realmente utili, è senz'altro positivo. Molto spesso, però, non si tiene conto di tutti gli utenti potenziali del sito: c'è chi non ha installato il plugin, per esempio, o chi li ha disabilitati. In questi casi, è opportuno prendere le contromisure del caso, sostituendo eventualmente il filmato con un'immagine alternativa, magari in grado di fornire in forma diversa lo stesso contenuto veicolato via Flash. Il semplice script di questa settimana consente proprio di ovviare a questo problema. Cosa fa? Verifica che sul computer dell'utente sia installato il Flash Player e nel caso in cui quest'ultimo non sia presente, sostituisce il filmato con un'immagine.
Lo script si compone di una sezione JavaScript incorporata all'interno della sezione HTML.
- esempio.htm
## 1: LA SEZIONE JAVASCRIPT
La sezione Javascript è direttamente inserita nella sezione HTML della pagina, ovvero nella parte racchiusa dai tag <body> e </body>. Lo script va infatti collocato esattamente nel punto in cui trova posto il filmato Flash. Vediamo il codice:
<script language="javascript" type="text/javascript">
<!-- Nasconde lo script ai vecchi browser
if (navigator.plugins["Shockwave Flash"]) {
document.write("<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0'><param name='moviè value='movie.swf'><embed pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' src='movie.swf'></embed></object>")
}
else {
document.write("<img src='immagine.gif' alt='Testo alternativo' width='414' height='300' />")
}
// Fine -->
</script>
Come si vede, la struttura è estremamente semplice e di facile comprensione per chi è solo un po' abituato a smanettare con Javascript. Si tratta di un'espressione condizionale che verifica innanzitutto la presenza del Flash Player tra i plugin installati:
if (navigator.plugins["Shockwave Flash"])
if (navigator.plugins["Shockwave Flash"])
Se il player è installato, lo script provvede a scrivere nel documento l'istruzione necessaria all'inserimento del filmato. Si tratta della consueta sintassi con l'uso dei tag <object> e <embed>:
{
document.write("<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0'><param name='moviè value='movie.swf'><embed pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' src='movie.swf'></embed></object>")
}
Come si vede, il metodo usato è il classico document.write. Si dovrà pertanto fare attenzione a due cose. Intanto all'utilizzo corretto di apici e doppi apici. I doppi apici vanno usati solo per racchiudere l'espressione che lo script scriverà. per il resto, nella parte HTML, si dovranno usare quelli singoli. Attenzione anche alla chiusura dei tag <object> e <embed>. Prima della slash di chiusura si dovrà infatti effettuare l'escape del carattere facendolo precedere dal simbolo di backslash (), così </object>, </embed>.
Lo script prosegue con un else. Se il player non è installato, insomma, lo script scriverà nel documento l'istruzione per caricare al suo posto un'immagine alternativa:
else {
document.write("<img src='immagine.gif' alt='Testo alternativo' width='414' height='300' />")
}
A livello di sintassi, valgono ovviamente le regole viste prima a proposito degli apici e dell'escape dei caratteri.