Trucsweb.com

Forum de discussion

 Forum « Flash et Shockwave » (archives)

Re: mise a jour correctice I.E. simplifié ;-)

Envoyé: 16 juin 2006, 9h01 par Oznog


Salut,

Il y a beaucoup de confusion et de bobarre sur le sujet. Mais c'est ton « plus simple » qui me fait rire, surment emprunté en référence à la solution d'Adobe (http://www.adobe.com/devnet/activecontent/articles/devletter.html)? Tout les codes sont bon, ça dépend des besoins de chacun. Peux-tu seulement l'expliquer ton code plus simple qui est en faite une complexification de la solution dite sale et rapide (quick and dirty fix ) (http://www.amarasoftware.com/flash-problem.htm) ;-)

Encore plus simple :

<!-- Dans l'en-tête -->
<script type="text/javascript" src="ieupdate.js"></script>

// Fichier ieupdate.js
objects = document.getElementsByTagName("object");
for (var i = 0; i < objects.length; i++)
{
objects[i].outerHTML = objects[i].outerHTML;
}

Quand même fort intéressant et n'oublions pas que toute solution restera toujours une sale patch !

L'idée est toujours la même, tromper le navigateur sur la présence de l'objet. Et tenter de rendre compatible le code avec le traitement de flashvar, des comportements (onmouseover) et autre paramètres ou en passant des valeurs dynamiques PHP etc. Ton code en fait tout autant. Outre les Flashvars, on y voie même une patch pour traiter le DATA de la trempette « Satay style objects » (2002) quand 98 % des flasheurs s'en balance complètement ! Si c'est ça plus simple ;-)

Alors tant qu'à faire le tour, et à faire plus simple ;-) voilà la seconde proposition d'Adobe, pour gérer même plusieurs occurence en même temps ;-) Disponible ici (http://download.macromedia.com/pub/developer/activecontent_samples.zip)

1. Ajouter dans l'en-tête (entre <head> et </head>)

<script language="javascript">AC_FL_RunContent = 0;</script>
<script src="AC_RunActiveContent.js" language="javascript"></script>

2. Sauver ce code dans un fichier à part sauvé sous : AC_RunActiveContent.js

//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext)
{
if (src.indexOf('?') != -1)
return src.replace(/\?/, ext+'?');
else
return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs)
{
var str = '<object ';
for (var i in objAttrs)
str += i + '="' + objAttrs[i] + '" ';
str += '>';
for (var i in params)
str += '<param name="' + i + '" value="' + params[i] + '" > ';
str += '<embed ';
for (var i in embedAttrs)
str += i + '="' + embedAttrs[i] + '" ';
str += ' ></embed></object>';

document.write(str);
}

function AC_FL_RunContent(){
var ret =
AC_GetArgs
( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
, "application/x-shockwave-flash"
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
var ret =
AC_GetArgs
( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
, null
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
var ret = new Object();
ret.embedAttrs = new Object();
ret.params = new Object();
ret.objAttrs = new Object();
for (var i=0; i < args.length; i=i+2){
var currArg = args[i].toLowerCase();

switch (currArg){
case "classid":
break;
case "pluginspage":
ret.embedAttrs[args[i]] = args[i+1];
break;
case "src":
case "movie":
args[i+1] = AC_AddExtension(args[i+1], ext);
ret.embedAttrs["src"] = args[i+1];
ret.params[srcParamName] = args[i+1];
break;
case "onafterupdate":
case "onbeforeupdate":
case "onblur":
case "oncellchange":
case "onclick":
case "ondblClick":
case "ondrag":
case "ondragend":
case "ondragenter":
case "ondragleave":
case "ondragover":
case "ondrop":
case "onfinish":
case "onfocus":
case "onhelp":
case "onmousedown":
case "onmouseup":
case "onmouseover":
case "onmousemove":
case "onmouseout":
case "onkeypress":
case "onkeydown":
case "onkeyup":
case "onload":
case "onlosecapture":
case "onpropertychange":
case "onreadystatechange":
case "onrowsdelete":
case "onrowenter":
case "onrowexit":
case "onrowsinserted":
case "onstart":
case "onscroll":
case "onbeforeeditfocus":
case "onactivate":
case "onbeforedeactivate":
case "ondeactivate":
case "type":
case "codebase":
ret.objAttrs[args[i]] = args[i+1];
break;
case "width":
case "height":
case "align":
case "vspace":
case "hspace":
case "class":
case "title":
case "accesskey":
case "name":
case "id":
case "tabindex":
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
break;
default:
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
}
}
ret.objAttrs["classid"] = classid;
if (mimeType) ret.embedAttrs["type"] = mimeType;
return ret;
}

3. Enfin, ajouter avant la déclaration de votre Flash le code Javascript suivant :
<script language="javascript">
if (AC_FL_RunContent == 0) {
alert("Cette page requiert AC_RunActiveContent.js");
} else {
AC_FL_RunContent(
'codebase', 'https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
'width', '200',
'height', '200',
'src', 'monFlash.swf',
'quality', 'high',
'pluginspage', 'https://www.macromedia.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'false',
'scale', 'noscale',
'wmode', 'window',
'devicefont', 'false',
'id', 'monFlash',
'bgcolor', '#eeeeee',
'name', 'monFlash',
'menu', 'false',
'allowScriptAccess','sameDomain',
'movie', 'monFlash.swf',
'salign', ''
);
}
</script>

4. Imbriqué la déclaratrion Flash dans une balise « noscript ».
<noscript>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="200" height="200" id="monFlash" align="middle">
<param name="allowScriptAccess" value="sameDomain" >
<param name="movie" value="monFlash.swf" >
<param name="loop" value="false" >
<param name="menu" value="false" >
<param name="quality" value="high" >
<param name="bgcolor" value="#eeeeee" >
<embed src="monFlash.swf" loop="false" menu="false" quality="high" bgcolor="#eeeeee" width="200" height="200" name="monFlash" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="https://www.macromedia.com/go/getflashplayer"; >
</object>
</noscript>

Ciao
Oznog


Réponses

 sp spRe: mise a jour correctice I.E. simplifié ;-) jeffly21/7/2006
Aucun médias sociaux
X

Trucsweb.com Connexion

X

Trucsweb.com Mot de passe perdu

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte