Contourner une incompatibilité FF IE
Fermé
lucdor
Messages postés
25
Date d'inscription
mercredi 23 juin 2004
Statut
Membre
Dernière intervention
1 juin 2007
-
1 juin 2007 à 14:57
lucdor Messages postés 25 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 1 juin 2007 - 1 juin 2007 à 15:24
lucdor Messages postés 25 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 1 juin 2007 - 1 juin 2007 à 15:24
A voir également:
- Contourner une incompatibilité FF IE
- Contourner fortinet ✓ - Forum Réseau
- Google payment ie dublin - Forum Consommation & Internet
- Arnaque cb google sur mon compte bancaire - Forum Réseaux sociaux
- Erreur 40 ff freebox - Forum Freebox
- Comment contourner family link - Forum Xiaomi
2 réponses
babytux
Messages postés
45
Date d'inscription
samedi 26 mai 2007
Statut
Membre
Dernière intervention
14 juin 2007
14
1 juin 2007 à 15:06
1 juin 2007 à 15:06
hello,
tu à +- 2 solutions...
sois tu fait la detection du coté client -->javascript par exemple
attention toute fois si les client desactive le javascript....
sinon coté serveur -->php par exemple
la variable $_SERVER te permet de connaitre le navigateur...
sinon la 3nd solutions qui me semble la plus réaliste -->tu fait 1 seul site pour les 2navigateur....
je m'explique: imagine que la personne change l'useragent tu fait quoi? tu dit à oui c'est ie donc une page moche? dans le cas d'un navigateur peu connu, par exemple konqueror tu fait quoi? firefox ou ie?
et pour le référencement tu fait quoi? tu crée encore une page pour les bot? <-- c'est interdit par pas mal de moteur...
et puis le html c'est quand meme pas 2 mondes si distincte que sa....
@+
Beks:P
tu à +- 2 solutions...
sois tu fait la detection du coté client -->javascript par exemple
attention toute fois si les client desactive le javascript....
sinon coté serveur -->php par exemple
la variable $_SERVER te permet de connaitre le navigateur...
sinon la 3nd solutions qui me semble la plus réaliste -->tu fait 1 seul site pour les 2navigateur....
je m'explique: imagine que la personne change l'useragent tu fait quoi? tu dit à oui c'est ie donc une page moche? dans le cas d'un navigateur peu connu, par exemple konqueror tu fait quoi? firefox ou ie?
et pour le référencement tu fait quoi? tu crée encore une page pour les bot? <-- c'est interdit par pas mal de moteur...
et puis le html c'est quand meme pas 2 mondes si distincte que sa....
@+
Beks:P
lucdor
Messages postés
25
Date d'inscription
mercredi 23 juin 2004
Statut
Membre
Dernière intervention
1 juin 2007
1 juin 2007 à 15:24
1 juin 2007 à 15:24
bonjour
merci pour ta réponse
le seul problème que je rencontre c'est par rapport à la gestion de le transparence des images .png du site_non-gérée par IE.
toutefois je suis d'accord avec toi une page par navigateur ce n'est pas réaliste .
l'idée que j'avais c'était de rendre visible l'animation ( menu ruban avec des images .png ) pour tous les navigateurs mais de proposer un menu fixe pour IE mais pas de modifier autre chose.
j'ai réussi à récupérer une astuce qui permet rendre transparente mes images .png sous IE à partir de la version 5.5 mais le menu ruban ne déroule plus.
je me permet de te mettre les 2 codes JS qui tournent très bien sous FF.
le premier rend les images transparentes sous IE
Correctly handle PNG transparency in Win IE 5.5 & 6.
http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.
Use in <HEAD> with DEFER keyword wrapped in conditional comments:
<!--[if lt IE 7]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![endif]-->
*/
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])
if ((version >= 5.5) && (document.body.filters))
{
for(var i=0; i<document.images.length; i++)
{
var img = document.images[i]
var imgName = img.src.toUpperCase()
if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
{
var imgID = (img.id) ? "id='" + img.id + "' " : ""
var imgClass = (img.className) ? "class='" + img.className + "' " : ""
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
var imgStyle = "display:inline-block;" + img.style.cssText
if (img.align == "left") imgStyle = "float:left;" + imgStyle
if (img.align == "right") imgStyle = "float:right;" + imgStyle
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
img.outerHTML = strNewHTML
i = i-1
}
}
}
le deuxième c'est celui du menu déroulant
// Fichier JavaScript
var angle=0;
var timer;
var FlgDefilement = "Non";
function Affichage ()
{
for(i=1;i<13;i++)
{
var Gauche = 180+300*(Math.cos(angle+i*Math.PI/6));//emplacement du menu déroulant par rapport à l'image de fond//
document.getElementById("i"+i).style.left=Gauche+"px";
var Hauteur = 80+50*(Math.sin(angle+i*Math.PI/6))+document.getElementById("i"+i).width/2;
document.getElementById("i"+i).style.top=Hauteur+"px";
agl=angle+i*Math.PI/6;
document.getElementById("i"+i).width=45*(Math.sin(agl))+60;//taille des icones//
document.getElementById("i"+i).style.zIndex=200*(Math.sin(agl))+400;
document.getElementById("i"+i).style.opacity=(Math.sin(agl)+1)*0.50;
document.getElementById("i"+i).style.filter="alpha(opacity="+(Math.sin(agl)+1)*200+")";
}
}
function Defilement()
{
switch (FlgDefilement)//vitesse de défilement//
{
case "Droite" :
angle=angle-0.015;
break;
case "Gauche" :
angle=angle+0.015;
break;
default :
angle=angle;
}
Affichage ();
}
function DefilementDroite()
{
if (FlgDefilement!="Droite")
{
FlgDefilement="Droite";
timer=setInterval("Defilement()",20);
}
}
function DefilementGauche()
{
if (FlgDefilement!="Gauche")
{
FlgDefilement="Gauche";
timer=setInterval("Defilement()",20);
}
}
function ArretDefilement()
{
clearInterval(timer);
FlgDefilement="Non";
}
}
si quelqu' un voit ce qui ne va pas, je serais heureux de tester sa solution parce que pour l'instant je rame.
Merci d'avance pour ta réponse
merci pour ta réponse
le seul problème que je rencontre c'est par rapport à la gestion de le transparence des images .png du site_non-gérée par IE.
toutefois je suis d'accord avec toi une page par navigateur ce n'est pas réaliste .
l'idée que j'avais c'était de rendre visible l'animation ( menu ruban avec des images .png ) pour tous les navigateurs mais de proposer un menu fixe pour IE mais pas de modifier autre chose.
j'ai réussi à récupérer une astuce qui permet rendre transparente mes images .png sous IE à partir de la version 5.5 mais le menu ruban ne déroule plus.
je me permet de te mettre les 2 codes JS qui tournent très bien sous FF.
le premier rend les images transparentes sous IE
Correctly handle PNG transparency in Win IE 5.5 & 6.
http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.
Use in <HEAD> with DEFER keyword wrapped in conditional comments:
<!--[if lt IE 7]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![endif]-->
*/
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])
if ((version >= 5.5) && (document.body.filters))
{
for(var i=0; i<document.images.length; i++)
{
var img = document.images[i]
var imgName = img.src.toUpperCase()
if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
{
var imgID = (img.id) ? "id='" + img.id + "' " : ""
var imgClass = (img.className) ? "class='" + img.className + "' " : ""
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
var imgStyle = "display:inline-block;" + img.style.cssText
if (img.align == "left") imgStyle = "float:left;" + imgStyle
if (img.align == "right") imgStyle = "float:right;" + imgStyle
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
img.outerHTML = strNewHTML
i = i-1
}
}
}
le deuxième c'est celui du menu déroulant
// Fichier JavaScript
var angle=0;
var timer;
var FlgDefilement = "Non";
function Affichage ()
{
for(i=1;i<13;i++)
{
var Gauche = 180+300*(Math.cos(angle+i*Math.PI/6));//emplacement du menu déroulant par rapport à l'image de fond//
document.getElementById("i"+i).style.left=Gauche+"px";
var Hauteur = 80+50*(Math.sin(angle+i*Math.PI/6))+document.getElementById("i"+i).width/2;
document.getElementById("i"+i).style.top=Hauteur+"px";
agl=angle+i*Math.PI/6;
document.getElementById("i"+i).width=45*(Math.sin(agl))+60;//taille des icones//
document.getElementById("i"+i).style.zIndex=200*(Math.sin(agl))+400;
document.getElementById("i"+i).style.opacity=(Math.sin(agl)+1)*0.50;
document.getElementById("i"+i).style.filter="alpha(opacity="+(Math.sin(agl)+1)*200+")";
}
}
function Defilement()
{
switch (FlgDefilement)//vitesse de défilement//
{
case "Droite" :
angle=angle-0.015;
break;
case "Gauche" :
angle=angle+0.015;
break;
default :
angle=angle;
}
Affichage ();
}
function DefilementDroite()
{
if (FlgDefilement!="Droite")
{
FlgDefilement="Droite";
timer=setInterval("Defilement()",20);
}
}
function DefilementGauche()
{
if (FlgDefilement!="Gauche")
{
FlgDefilement="Gauche";
timer=setInterval("Defilement()",20);
}
}
function ArretDefilement()
{
clearInterval(timer);
FlgDefilement="Non";
}
}
si quelqu' un voit ce qui ne va pas, je serais heureux de tester sa solution parce que pour l'instant je rame.
Merci d'avance pour ta réponse