if (T_act.indexOf(tpar[0].substr(5)) != -1) { clas="B"; }
fonctionne sous Mozilla et comporte une rreur sous IE(le script s'arréte) evidement T_act et tpar[0].substr(5) sont correctement définis.
le pb venait du type d'objet de T_act
T_act est un Array => IE ne sait pas (Netscape non plus) Merci
YD
if (T_act.indexOf(tpar[0].substr(5)) != -1) { clas="B"; } fonctionne sous Mozilla et comporte une rreur sous IE(le script s'arréte) evidement T_act et tpar[0].substr(5) sont correctement définis.
le pb venait du type d'objet de T_act
T_act est un Array => IE ne sait pas (Netscape non plus)
Certes mais la norme (ECMA-262 3e éd.) dit :
<cite> The indexOf function is intentionally generic;it does not require that its this value be a String object. Therefore, it can be transferred to other kinds of objects for use as a method. </cite>
ce qui signifie que indexOf peut être transféré à d'autres types d'objet comme une méthode.
Appliqué à ton cas, il suffit d'ajouter cette ligne dans le script :
Array.prototype.indexOf=String.prototype.indexOf;
et le tour est joué.
Le JS devant T_act.indexOf(tpar[0].substr(5)) effectuera ceci :
T_act.toString() --> transforme en chaîne les différents éléments de l'Array séparés par des virgules ; recherche de la chaîne de recherche dans la chaîne résultante.
Exemple :
var a=['un','beau','jour','ou','peut-être','une','nuit'];
Cela évitera de fouiller l'Array par une boucle. Pour être sûr du résultat, il vaut mieux que la cha$ine de recherche ne contienne pas de virgule...
-- Y.D.
if (T_act.indexOf(tpar[0].substr(5)) != -1) {
clas="B";
}
fonctionne sous Mozilla et comporte une rreur sous IE(le script s'arréte)
evidement T_act et tpar[0].substr(5) sont correctement définis.
le pb venait du type d'objet de T_act
T_act est un Array => IE ne sait pas (Netscape non plus)
Certes mais la norme (ECMA-262 3e éd.) dit :
<cite>
The indexOf function is intentionally generic;it does not
require that its this value be a String object. Therefore,
it can be transferred to other kinds of objects for use as
a method.
</cite>
ce qui signifie que indexOf peut être transféré à d'autres
types d'objet comme une méthode.
Appliqué à ton cas, il suffit d'ajouter cette ligne dans le
script :
Array.prototype.indexOf=String.prototype.indexOf;
et le tour est joué.
Le JS devant T_act.indexOf(tpar[0].substr(5)) effectuera ceci :
T_act.toString() --> transforme en chaîne les différents
éléments de l'Array séparés par des virgules ;
recherche de la chaîne de recherche dans la chaîne résultante.
Exemple :
var a=['un','beau','jour','ou','peut-être','une','nuit'];
if (T_act.indexOf(tpar[0].substr(5)) != -1) { clas="B"; } fonctionne sous Mozilla et comporte une rreur sous IE(le script s'arréte) evidement T_act et tpar[0].substr(5) sont correctement définis.
le pb venait du type d'objet de T_act
T_act est un Array => IE ne sait pas (Netscape non plus)
Certes mais la norme (ECMA-262 3e éd.) dit :
<cite> The indexOf function is intentionally generic;it does not require that its this value be a String object. Therefore, it can be transferred to other kinds of objects for use as a method. </cite>
ce qui signifie que indexOf peut être transféré à d'autres types d'objet comme une méthode.
Appliqué à ton cas, il suffit d'ajouter cette ligne dans le script :
Array.prototype.indexOf=String.prototype.indexOf;
et le tour est joué.
Le JS devant T_act.indexOf(tpar[0].substr(5)) effectuera ceci :
T_act.toString() --> transforme en chaîne les différents éléments de l'Array séparés par des virgules ; recherche de la chaîne de recherche dans la chaîne résultante.
Exemple :
var a=['un','beau','jour','ou','peut-être','une','nuit'];