Bonjour!
Inscription toute fraîche sur ce forum pour trouver l'aide auprès des connaisseurs!
J'ai un système en javascript qui me permet de récupérer les dimensions de la fenêtre pour ensuite adapter des div et des swf à ces dimensions. C'est opérationnel sous IE 6 et 7 et FF3.
Problème: la chose ne fonctionne pas sous Opera.
Ayant fait faire mon script par un tiers, je suis incapable d'y modifier quoi que ce soit (sauf les chiffres ^^)... Mais il se trouve que cette fois, l'auteur du script bloque aussi, j'en appelle donc à votre aide.
Bref, deux questions, avant de montrer les sources:
1) Comment faire fonctionner ce script sous Opera? Je ne sais pas si le problème a lieu au moment de la récupération des dimensions, ou au moment de leur utilisation pour dimensionner les swf et les div.
2) Je n'ai pas pu tester sous Safari, peut-être quelqu'un pourrait le faire? Et évidemment me dire ce que ça donne... Merci!
>>> la page en question <<<
Inscription toute fraîche sur ce forum pour trouver l'aide auprès des connaisseurs!
J'ai un système en javascript qui me permet de récupérer les dimensions de la fenêtre pour ensuite adapter des div et des swf à ces dimensions. C'est opérationnel sous IE 6 et 7 et FF3.
Problème: la chose ne fonctionne pas sous Opera.
Ayant fait faire mon script par un tiers, je suis incapable d'y modifier quoi que ce soit (sauf les chiffres ^^)... Mais il se trouve que cette fois, l'auteur du script bloque aussi, j'en appelle donc à votre aide.
Bref, deux questions, avant de montrer les sources:
1) Comment faire fonctionner ce script sous Opera? Je ne sais pas si le problème a lieu au moment de la récupération des dimensions, ou au moment de leur utilisation pour dimensionner les swf et les div.
2) Je n'ai pas pu tester sous Safari, peut-être quelqu'un pourrait le faire? Et évidemment me dire ce que ça donne... Merci!
>>> la page en question <<<
<script type="text/javascript">
// D'abord on récupère les dimensions de la fenêtre du navigateur
if (parseInt(navigator.appVersion)>3) {
if (navigator.appName=="Netscape") {
var winW = window.innerWidth;
var winH = window.innerHeight;
}
if (navigator.appName.indexOf("Microsoft")!=-1) {
var winW = document.documentElement.offsetWidth;
var winH = document.documentElement.offsetHeight;
}
}
// Ici on définit la taille d'origine de notre animation
// Attention! Contrainte avec le code tel qu'il est prévu dans cet ex: toutes les anims chargées doivent faire les mêmes dimensions.
var animW = 800;
var animH = 600;
// Ensuite on calcule les proportions de la fenêtre et de l'anim
var winRatio = winW/winH;
var animRatio = animW/animH;
// Si le ratio de la fenêtre est supérieur à celui de l'anim,
// c'est que la fenêtre est plus large en proportion...
if(winRatio > animRatio){
// ..donc on adapte la hauteur de l'anim à la hauteur de la fenêtre...
animH = winH;
// ...et on garde les proportions en largeur grâce au ratio.
animW = winH*animRatio;
//
// Sinon, le ratio de la fenêtre est inférieur à celui de l'anim,
// et donc la fenêtre est plus haute en proportion...
} else {
// ..donc on adapte la largeur de l'anim à la largeur de la fenêtre...
animW = winW;
// ...et on garde les proportions en hauteur grâce au ratio.
animH = winW/animRatio;
}
// Enfin on peut créer la div de telle sorte que sa hauteur ou sa largeur, selon les cas, soit égale à un quart de la fenêtre,
// c'est à dire qu'on divise par 2 les dimensions de l'anim, qui viennent d'être calculées pour coller au mieux à la fenêtre.
document.write('<table border="0px" cellpadding="0px" cellspacing="10px"><tr><td>');
document.write('<div id="flashcontentA" style="width:'+(animW/2)+'px; height:'+(animH/2)+'px"></div>');
document.write('</td><td>');
document.write('<div id="flashcontentB" style="width:'+(animW/2)+'px; height:'+(animH/2)+'px"></div>');
document.write('</td></tr><tr><td>');
document.write('<div id="flashcontentC" style="width:'+(animW/2)+'px; height:'+(animH/2)+'px"></div>');
document.write('</td><td>');
document.write('<div id="flashcontentD" style="width:'+(animW/2)+'px; height:'+(animH/2)+'px"></div>');
document.write('</td></tr></table>');
// Et pour finir on charge l'animation en la dimensionnant selon nos calculs
var so = new SWFObject("demo.swf", "demo", animW, animH, 8, "#FFFFFF");
so.addParam("quality", "high");
so.write("flashcontentA");
so.write("flashcontentB");
so.write("flashcontentC");
//pour charger différentes anim, créer une nouvelle variable à chaque foi, ex:
var soA = new SWFObject("demo2.swf", "demo2", animW, animH, 8, "#FFFFFF");
soA.addParam("quality", "high");
soA.write("flashcontentD");
</script>