Comment activer le Flash Player pour une animation swf dans Internet Explorer ?

A cause d’un litige entre Microsoft et la société Eolas Technologie à propos d’un brevet logiciel, Microsoft a sorti un patch pour IE obligeant l’internaute à cliquer sur une animation flash afin de l’activer pour pouvoir l’utiliser.

Si vous ne voyez pas de quoi je parle, Adobe a même fait une petite animation pour vous l’expliquer. Cliquez ici pour la voir.

Voilà c’est ça, vous voyez de quoi je parle, le contour gris et le message “Cliquez ici pour activer”.

Afin de faire en sorte que vos internautes utilisateurs de IE n’est pas ce désagrément, voici la marche à suivre.

L’astuce consiste à rajouter par Javascript les différentes balises nécessaire à l’affiche d’une animation flash. Pour les personnes n’ayant pas javascript, on rajoute dans la partie noscript le code normal d’une animation flash. Cette méthode est celle préconisée par Adobe/Macromédia afin de résoudre le problème.

Cette méthode est d’ailleurs assez universelle.

Mise en Pratique

Tout d’abord, télécharger ce fichier javascript : AC_RunActiveContent.js

Puis uploadez le à la racine de de votre site internet.

Voici un exemple d’utilisation, les variables dont vous avez besoin sont passées à l’appel de la fonction.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Exemple d'utilisation de javascript pour activier le flash sous IE</title>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<!-- On inclut le javascript dont on a besoin.
Vous pouvez bien entend u mettre le fichier javascript ailleurs qu'à la racine de votre site, mais il faudra penser à changer le chemin d'appel ici -->
<script type="text/javascript" src="AC_RunActiveContent.js"></script>
</head>
<body>
<!--
On appelle ici la fonction du fichier .js, qui va permettre de générer dynamiquement les balises pour afficher l'animation flash
Vous remarquerez que toutes les variables sont passées sous la forme nom, valeur
-->>
<script type="text/javascript">AC_FL_RunContent(
'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0',
'width','369',
'height','113',
'src','flash',
'quality','high',
'pluginspage','http://www.macromedia.com/go/getflashplayer',
'movie','flash'
);
</script>

<!-- On rajoute dans la prtie no script le code normal de l'animation flash, pour les utilisateurs ayant désactivé javascript.-->
<noscript>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="369" height="113">
<param name="movie" value="flash.swf">
<param name="quality" value="high">
<embed src="flash.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="369" height="113"></embed>
</object>
<p><em>Note: Javascript n'est pas activé sur votre machine.<em></p>
</noscript>
</body>
</html>

Autres pistes de solutions

Des techniques servant pour autres choses , mais créant également les balises nécessaires au Flash par javascript permettent, elles aussi, de contourner le problème d’activation.

Il s’agit notamment de :
- SWFObject (en anglais : Cette technique permet notamment de tester la version du flash player de la machine, et si elle est trop vieille de la mettre à jour automatiquement. Son utilisation permet également d’avoir un code XHTML valide et se dégrade sans heurts pour les personnes n’ayant pas javascript

- Unobtrusive Flash Objects (UFO) v3.22 en anglais dans le même genre que SWFObject, mais il est moins utilisé je pense. La plupart des sites que je vois utilise SWFObject.

une autre technique vue sur le net (je ne l’ai d’ailleurs pas testé celle là) consiste à créer un fichier flash.js content les lignes suivantes :


theObjects = document.getElementsByTagName("object");
for (var i = 0; i < theObjects.length; i++) {
theObjects[i].outerHTML = theObjects[i].outerHTML;
}

Puis juste après la dernière animation flash de votre page de faire un appel à votre javascript :


<script type="text/javascript" sr="flash.js"></script>

Serais je obligé de faire ces manips pour toujours ?

Et bien la réponse est non ! En effet, Microsoft a trouvé une solution, et donc va retirer le “bridage” qu’il avait mis en place dans Internet Explorer.

Pour se faire, comme indiqué de façon officielle ici , à partir d’Avril 2008, lors de la prochaine mise à jour de IE, le bridage sera retiré.

Cela veut également dire que si les gens ne font pas la mise à jour (genre certaines administrations, des entreprises avec intranet,etc), elles auront toujours ce bridage. En gros je pense que les webmasters sont partis pour un bon moment à se coltiner cette méthode.

Laisser un commentaire