Page 1 sur 1

Javascript et IE6

Posté : 05 sept. 2008, 14:29
par _activmik
Bonjour, j'ai un code javascript qui fonctionne parfaitement sous Mozilla, Opera et Safari, à 50% sou IE7 (il ne gère pas le reload sur un onclick) et carrement pas sous IE6 :cry:

Le voici :

Code : Tout sélectionner

Fx.Properties = Fx.Styles.extend({ increase: function(){for ( var p in this.now) this.element[p] = this.now[p]; } }); Fx.FlyingScroller = Fx.Properties.extend({ initialize: function(el, options){ this.parent(el, options); this.options = Object.extend(this.options || {}, Object.extend({ paddingLeft: 0, paddingTop: 0 }, options || {})); }, toElement: function(el, paddingLeft, paddingTop){ this.goTo(el.offsetLeft - (paddingLeft || this.options.paddingLeft || 0), el.offsetTop - (paddingTop || this.options.paddingTop || 0)); }, goTo: function(x, y){ this.custom({ 'scrollTop': [this.element.scrollTop, y] }) } }); window.onload=function(){ var objet = document.getElementById(\"tile-inner\"); }

si quelqu'un pouvait bien m'aiguiller sur la fonction qui n'est pa géré par I6, ce serait super.
J'ai deja regardé du côté du getElementById que je devrais remplacer par getObjectById mais ça ne change rien... :(

Posté : 05 sept. 2008, 14:41
par B.Moncef
Je ne suis pas très à l'aise avec le javascript, donc mon intervention ne concernera pas vraiment le coté technique de ton problème.

Je tiens juste à te dire que tu n'es pas obligé de te prendre avec la tête avec un navigateur obsolète (IE6), qui ne sert plus à rien. Si ton code marche sur tous les navigateurs à part ce dernier, c'est qu'il est correct et que tu te prends la tête pour rien (ça ne veut pas dire qu'il n'y a pas de solution pour le faire marcher sous IE6).

Posté : 05 sept. 2008, 14:50
par _activmik
Merci de cette réponse.

Malheureusement elle ne conviendra pas à mon client, surtout que IE6 représente toujours à peine moins de 25% des utilisateurs (comme IE7)..
source

[edit]correction syntaxique

Posté : 05 sept. 2008, 17:04
par zeus
Je tiens juste à te dire que tu n'es pas obligé de te prendre avec la tête avec un navigateur obsolète (IE6), qui ne sert plus à rien. Si ton code marche sur tous les navigateurs à part ce dernier, c'est qu'il est correct et que tu te prends la tête pour rien (ça ne veut pas dire qu'il n'y a pas de solution pour le faire marcher sous IE6).
Quand on sais qu'il y a plus de IE6 que de FF2, en chiffre brut, je ne pense pas qu'il soit encore obsolète :S

Posté : 05 sept. 2008, 17:35
par agité
Je tiens juste à te dire que tu n'es pas obligé de te prendre avec la tête avec un navigateur obsolète (IE6), qui ne sert plus à rien. Si ton code marche sur tous les navigateurs à part ce dernier, c'est qu'il est correct et que tu te prends la tête pour rien (ça ne veut pas dire qu'il n'y a pas de solution pour le faire marcher sous IE6).
Quand on sais qu'il y a plus de IE6 que de FF2, en chiffre brut, je ne pense pas qu'il soit encore obsolète :S
Ca dépend des sites, quand je regarde les sites grand public c'est 80%-90% du temps de l'internet explorer (6 en grande partie), dans des sites spécialisé, genre des trucs de djeuns (lol) ben tu verra beaucoup plus de firefox et d'autres browser.

Il faut faire en fonction du public concerné, si tu fais un site vitrine il faudra qu'il s'affiche en 800*600 sous IE6 aussi.

Posté : 06 sept. 2008, 11:57
par _activmik
Pas que cette discussion ne me touche pas ( au contraire elle prouve que pas mal de membres lisent tous les sujets), mais peut-on revenir au sujet initial svp ? :oops:

Posté : 08 sept. 2008, 13:01
par _activmik
Bon et bien si ça intéresse quelqu'un, j'ai résolu mon problème, merci moi.

Posté : 08 sept. 2008, 14:24
par zeus
Et quelle était la solution ?

Posté : 08 sept. 2008, 15:10
par _activmik
J'ai fait une analyse différente pour IE6.

Du coup, j'ai mon script de défilement tout joli pour tous les browsers != de IE6, et pour IE6 je défile à "l'ancienne" avec des ancres. C'est plus rude quoi.

Pour savoir si je ne suis pas sous IE6, j'utilise :
$ua = getenv("HTTP_USER_AGENT");
if (!strstr($ua, "MSIE") ) :
//Tout ce qui n'est pas MSIE
else :
if (strstr($ua, "MSIE") && strstr($ua, "7.0")) {
//IE7 
}
else {
//IE6 ici
}
endif;

J'avais pas mis la solution parce que je considérais pas vraiment cela comme une solution pouvant fonctionner avec tous les problèmes IE6 et JS, je la trouve trop "personnel" et bidouillée.


[edit]correction syntaxique