Attivazione dei contenuti SWF su Internet Explorer
Valida alternativa all'SWFObject
Inserito il 14-12-2008
Ricorderete probabilmente il problema di attivazione dei filmati swf su IE, e la soluzione attualmente più gettonata, che è l'uso dell'SWFObject, realizzato in javascript.
L'uso di javascript è in effetti il modo più semplice di inserire un filmato swf in una pagina web, evitando il problema dell'attivazione del filmato da parte dell'utente. Tra gli script interessanti che mi sono capitati sotto mano, ce n'è uno in particolare che ho preferito all'SWFObject e che ho iniziato da poco ad utilizzare al suo posto, considerato che è molto più leggero e che non c'è bisogno di caricare la pagina html di tag <script> e macchinazioni varie, uno script che in soli 999 bytes racchiude la soluzione all'attivazione probabilmente più leggera tra quelle in circolazione.
La soluzione, chiamata dal suo sviluppatore "anyIEActiveX", si propone tra le altre cose di risolvere alcuni problemi comuni tra i quali:
- l'attivazione dei contenuti swf su IE;
- alcuni problemi di attivazione dei contenuti su altri browser, tra i quali spicca Opera;
- la validazione W3C delle pagine che contengono filmati swf;
- il requisito di attivazione di javascript per la visualizzazione dei filmati swf.
L'anyIEActiveX si basa sull'uso del metodo Satay per la validazione W3C, riduce all'osso il markup necessario all'inserimento del filmato nella pagina html e da la possibilità agli sviluppatori di aggiungere facilmente dei contenuti alternativi per i navigatori che non avessero il Flash Player installato nel proprio sistema.
Una delle peculiarità del sistema è che comunque Javascript non deve essere necessariamente attivo nel browser, il filmato swf verrà visualizzato comunque, inoltre se non è presente il Flash Player il navigatore vedrà il contenuto alternativo, qualora sia disponibile nella pagina html.
Nel pacchetto, scaricabile dalla pagina di esempio, sono compresi due file swf, un file html e il file js che non è necessario modificare.
L'unico file su cui è necessario mettere mano è il file html, che sarebbe poi la pagina che conterrà il nostro filmato
La struttura basilare della pagina si presenta in questo modo:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it"> <head> <title>anyIEActiveX :: demo</title> <meta http-equiv="content-language" content="it-IT" /> <script type="text/javascript" src="anyIEActiveX.js"><!--// (C) Andrea Giammarchi //--></script> </head> <body> <div> <object type="application/x-shockwave-flash" data="flash.swf?v=8&swf=8.swf" width="500" height="300"> <param name="movie" value="flash.swf?v=8&swf=8.swf" /> <p>Requires Flash Player</p> </object> </div> </body> </html>
Il file "flash.swf" accetta in ingresso due parametri, v e swf, il primo che rappresenta la versione minima del flash player con cui è possibile visualizzare il filmato (e che può essere scritta con i formati tipo: 7 oppure 7,0 oppure 7.0.10 oppure 7.0.10.4), il secondo che rappresenta il nome compreso di estensione, del nostro filmato che effettivamente vogliamo far visualizzare sulla pagina html.
Se la versione del flash player installata nel browser del navigatore è inferiore a quella specificata, il file "flash.swf" caricherà automaticamente il file "fail.swf", che conterrà al suo interno un link da cui sarà possibile scaricare la versione aggiornata del flash player.
Lo script anyIEActiveX.js farà tutto in maniera automatica, riscrivendo gli <object> presenti nella pagina, utilizzando la sintassi del metodo Satay ed eliminando il blocco activex su IE.
La facilità di utilizzo e il peso contenuto fanno dell'anyIEActiveX, a mio parere, il miglior sistema da utilizzare per la risoluzione del blocco dei contenuti da parte di Internet Explorer, provare per credere.
