Ho avuto la fortuna di lavorare con Filippo Lughi (flepstudio) sul debugging di slidecake (www.slidecake.com) un fantastico controllo flash.Ci siamo accorti che SWFobject aveva un problema con Internet Explorer 6+.
In pratica, la prima volta che l’swf veniva caricato andava tutto a buon fine. Ma, al refresh della stessa pagina, l’swf perdeva totalmente le coordinate dello stage, cioè gli oggetti si disponevano tutti a coordinate 0,0.Dopo vari tentativi, siamo giunti finalmente alla soluzione:
basta passare un valore random all’swf ogni volta che viene caricato, in questo modo IE non mette in cache l’swf.
Abbiamo usato una semplice funzione Javascript:
<body> <div align="center" id="content"> <script type="text/javascript"> // <![CDATA[ var so = new SWFObject('main.swf?cahcebuster='+ escape((new Date()).getTime()), 'main', '270', '390', '10', '#FFFFFF'); so.useExpressInstall('swfobject/expressinstall.swf'); so.addParam('menu', 'false'); so.addParam('allowfullscreen', 'true'); so.write('content'); // ]]> </script> </div> </body>
In particolare abbiamo concatenato una stringa variabile al nome del file swf, main.swf,
'main.swf?cahcebuster='+ escape((new Date()).getTime())
forzando così il broswer a non utilizzare l’swf nella cache.(dal blog di flepstudio)