PRATIQUE CLIENTS WEB 
Préparer son site aux modifications d'Internet Explorer
 
"J'ai bien lu que Microsoft allait modifier le fonctionnement d'ActiveX dans les prochaines mises-à-jour d'IE, et que les développeurs doivent s'y préparer, mais comment s'y prendre au juste ?" (25/04/2006)
  Forum

Réagissez dans les forums de JDN Développeurs

Les modifications prochaines du fonctionnement d'Internet Explorer vont modifier la manière dont les plug-ins s'exécutent. Plutôt que d'afficher directement le contenu réclamant un plug-in (par exemple, une application Flash ou un film QuickTime), IE demandera à l'utilisateur de cliquer sur l'espace géré par le plug-in, pour charger le contenu.

Tous les contenus faisant appel à des balises object, ombed ou applet directement dans le code HTML subiront ce clic obligatoire. En revanche, si ces balises sont insérées dans le code HTML par le biais de JavaScript ou d'autres scripts externes, le contenu devrait s'afficher sans clic supplémentaire.

C'est ici que se trouve la solution pour éviter ce clic, aussi peu pratique soit-elle. Toutes les instances des balises incriminées devront être retirées du code HTML, et remplacées par du code JavaScript qui produira le bon code HTML par le biais de la fonction document.write().

On reprendra donc exactement le code généré par Flash lors de l'export du film, pour le découper et le placer comme arguments de la fonction write(). Par exemple :

[fichier placeFlash.js]
function placerFlash() {
  document.write('<object classid="clsid:B48KLE6A..." ...>\n');
  document.write('<param name="movie" value="monFichier.swf" />\n');
  document.write('</object>\n');
  }


Puis dans le document HTML :

<script src="placerFlash.js" type="text/javascript"></script>
<script type="text/javascript">placerFlash();</script>


Si le site utilise plus d'un contenu nécessitant un plugin sur une page, il sera préférable d'avoir recours à une fonction JavaScript ad-hoc, afin de ne pas dupliquer les efforts.

Pour les utilisateurs ayant retiré JavaScript, il faudra placer les balises habituelles (embed, object...) entre les balises noscript. Ils devront alors cliquer sur l'espace pour lancer le plugin, mais c'est alors un moindre mal...
 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page