Bonjour à tous,
J'ai un repeater dans lequel j'affiche une liste de produit, jusqu'ici tout vas bien, j'ai appris y a peu que je dois soit afficher une Image, soit un flash ...
La méthode que je dois utiliser, est SWFObject dans du javascript.
J'utilise une méthode Javascript qui teste l'extension et selon le résultat, cache le blog image et affiche un blog flash, le problème est que le Javascript ne connait pas les composant du template du Repeater (la méthode utilisé dans le site est une méthode javascript qui n'est pas appelé et qui est déclenché pour chaque chargement de la page), donc ce que je voulais faire c'est appelé ma méthode Javascript à partir d'un div dans la méthode onload (désolé j'ai pas trouvé mieux ).
Ah oui, je peux pas utiliser l'attribut embed (ben oui sinon ça serai trop facile) ...
Voici ce que je fais :
- L'appel du javascript à partir d'un div dans mon repeater :
Code :
<div onload="flashTest()" id="divFlash" visible="false">
- fonctions javascript :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| <script language="javascript" type="text/javascript">
function flashTest(){
if(isFlash(document.getElementById('<%=hdUrlFlash.ClientID %>').value))
{
document.getElementById('<%=divImage.ClientID %>').style.display="none";
createFlash();
document.getElementById('<%=divFlash.ClientID %>').style.display="block";
}
}
function createFlash()
{
if(urlFlash != "")
{
var so = new SWFObject(document.getElementById('<%=hdUrlFlash.ClientID %>').value, 'FC_Flash', '200', '200', '8', 'transparent');
so.addParam('quality','high');
so.addParam('wmode','transparent');
so.write('<%=divFlash.ClientID %>');
}
}
function isFlash(name)
{
tab = name.split('.');
ext = tab[tab.length-1];
if(ext == "swf")
{
return true;
}
else
{
return false;
}
}
</script> |
Message d'erreur :
The name 'hdUrlFlash' does not exist in the current context (de même divImage, divFlash ...)
Au fait, je suis un peu tenu d'utiliser cette méthode puisque c'est ce qui est utiliser partout ailleurs (mais si vous me dites que c'est pas possible ...).
Merci d'avance.
Partager