Forum de discussion
Forum « Flash et Shockwave » (archives)
Re: Pré-clic comment le mettre en disable ?
Envoyé: 2 septembre 2006, 5h45 par toph
j'ai une autre solution à proposer, en passant par le javascript.
La solution est basée sur le même principe que celle d'Oznog (que je salue au passage) à savoir : charger le flash une fois que toute la page est affichée ...
Je vais essayer d'être simple et concis:
PRINCIPE :
Le swf est généralement situé dans une balise <td></td>.
En donnant un id à ce <td>, on peut y accéder et donc récrire le contenu ...
Un simple javascript permet cette opération. Il suffit donc de le lancer à la fin du chargement de la page (après la balise <body></body>)
DETAIL :
Dans un fichier 'index.js', situé ds le même repertoire que le html :
---------------------------------------------------------------------------------------
function affiche_menu() {
var id = document.getElementById('menu_flash');
var contenu = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"'
+'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="200" height="340" id="menu" align="middle">'
+'<param name="allowScriptAccess" value="sameDomain" >'
+'<param name="movie" value="menu.swf" ><param name="quality" value="high" ><param name="bgcolor" value="#ffCC33" ><embed src="menu.swf?rub=120&ssrub=356" quality="high" bgcolor="#ffCC33" width="200" height="340" name="menu" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" >'
+'</object>';
id.innerHTML = contenu;
}
// en fait, il s'agit de remettre dans la variable 'contenu' toute la balise <object> et son contenu, généré lors de la publication flash ... le tout entre " ' "
// A cause des retours à la ligne du html original, on est obligé de fractionner tout ça et de mettre de '+' pour chaque retour à la la ligne ...
Dans la page html :
---------------------------------------------------------------------------------------
<html>
...
<script type="text/javascript" src="index.js"></script>
...
<body>
...
<td id="menu_flash"></td>
...
</body>
...
<script>
affiche_menu();
</script>
...
</html>
---------------------------------------------------------------------------------------
Et voilà, simple comme bonjour et ça marche bien ...
Je sais, vous allez dire : "oui, mais ça veut dire qu'il faut avoir les javascripts activés!"
Je répondrais : "Si tu cherches à lire un contenu ActiveX, je pense que tu dois avoir les javascripts activés aussi. La logique web veut que ce soit les deux activés ou aucun activé ... rarement l'un sans l'autre... non?"
Dans mon cas, je l'utilise pour charger un menu dans une page html... mais ça marche pour tout!
Une autre petite astuce pour les robots de référencement google qui ne lisent pas le flash ... toujours dans l'exemple d'un menu en flash.
Si les javascripts sont désactivés, rien n'empèche de mettre un menu statique en html (à base de <a></a> tout betes) dans une balise <noscript> à l'intérieur du fameux <td>.
Comme ça, soit il affiche le flash, soit il affiche ... un menu fixe en html... pas mal non ...
il suffit de faire comme ça :
<td width="180" id="menu_flash">
<noscript>
Le menu flash ne peut pas s'afficher
<a href="http://www.trucsweb.com" target="_blank">TrucsWeb, Webmestrie et Liberté</a>
</noscript>
</td>
faites le test en désactivant le javascript... ça marche du tonnerre!!!
Voilà, voilà ...
++
Toph'
Réponses
|