PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.javascript > extension du prototype
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
extension du prototype

Réponse
 
LinkBack Outils de la discussion
Vieux 06/07/2007, 11h16   #1
Niko
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut extension du prototype

Bonjour,

Est-ce que quelqu'un aurait une idée de la raison pour laquelle le code
suivant fonctionne sur FF et pas sur IE ?

Object.prototype.find_Attribute_By_Name=function(a ttrname){
var attrname;
var x=0;
var ret=false;
var limit=this.length;
while(x<limit)
{
if (this[x].nodeName==attrname)
{
ret=this[x];
x=limit;
}
else x++;
}
return ret;
}

var val_attr=cell.attributes.find_Attribute_By_Name('n ame').nodeValue;

Dans ma page , j'ai un tableau HTML avec une cellule définie comme suit :

<td name="Nom_de_la_cellule" id="id_de_la_cellue">Contenu</td>

La fonction find_Attribute_By_Name('name') doit normalement me retourner
"Nom_de_la_cellule".

Merci d'avance

Niko
  Réponse avec citation
Vieux 10/07/2007, 11h53   #2
O.L.
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: extension du prototype

Niko a pensé très fort :
> Bonjour,
>
> Est-ce que quelqu'un aurait une idée de la raison pour laquelle le code
> suivant fonctionne sur FF et pas sur IE ?
>
> Object.prototype.find_Attribute_By_Name=function(a ttrname){
> var attrname;
> var x=0;
> var ret=false;
> var limit=this.length;
> while(x<limit)
> {
> if (this[x].nodeName==attrname)
> {
> ret=this[x];
> x=limit;
> }
> else x++;
> }
> return ret;
> }
>
> var val_attr=cell.attributes.find_Attribute_By_Name('n ame').nodeValue;
>
> Dans ma page , j'ai un tableau HTML avec une cellule définie comme suit :
>
> <td name="Nom_de_la_cellule" id="id_de_la_cellue">Contenu</td>


Z'êtes sûr que nodeName est supporté par IE ? On dirait un truc trop
standard pour lui ...

Sinon je suis pas sûr d'avoir compris l'exemple.
ret=this[x]; => va retourner un objet, or vous dites :
> La fonction find_Attribute_By_Name('name') doit normalement me retourner
> "Nom_de_la_cellule".


En plus la fonction semble devoir cumuler les résultats avec le
while(), mais là les résultats écrasent à chaque fosi les précédents,
et un seul est finalement renvoyé.

--
Olivier Ligny
www.virgal.net (Monde persistant)


  Réponse avec citation
Vieux 10/07/2007, 18h07   #3
Niko
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: extension du prototype

O.L. a écrit :
> Niko a pensé très fort :
>> Bonjour,
>>
>> Est-ce que quelqu'un aurait une idée de la raison pour laquelle le
>> code suivant fonctionne sur FF et pas sur IE ?
>>
>> Object.prototype.find_Attribute_By_Name=function(a ttrname){
>> var attrname;
>> var x=0;
>> var ret=false;
>> var limit=this.length;
>> while(x<limit)
>> {
>> if (this[x].nodeName==attrname)
>> {
>> ret=this[x];
>> x=limit;
>> }
>> else x++;
>> }
>> return ret;
>> }
>>
>> var val_attr=cell.attributes.find_Attribute_By_Name('n ame').nodeValue;
>>
>> Dans ma page , j'ai un tableau HTML avec une cellule définie comme suit :
>>
>> <td name="Nom_de_la_cellule" id="id_de_la_cellue">Contenu</td>

>
> Z'êtes sûr que nodeName est supporté par IE ? On dirait un truc trop
> standard pour lui ...


C'est sans doute une partie de l'explication mais c'est pas nodeName
qui est en cause car si je transforme le code en une fonction, elle
marche aussi sur IE
function find_Attributes_By_Name(obj, attrname){
var attrname;
var x=0;
var ret=false;
var limit=obj.length;
while(x<limit)
{
if (obj[x].nodeName==attrname)
{
ret=obj[x];
x=limit;
}
else x++;
}
return ret;
}

appelée de la sorte :

attr=find_Attributes_By_Name(cell.attributes,"name ");
>
> Sinon je suis pas sûr d'avoir compris l'exemple.
> ret=this[x]; => va retourner un objet, or vous dites :
>> La fonction find_Attribute_By_Name('name') doit normalement me
>> retourner "Nom_de_la_cellule".

Effectivement, au temps pour moi, c'est bien l'objet qui est retourné

je récupère ensuite la valeur par var val = attr.nodeValue;
>
> En plus la fonction semble devoir cumuler les résultats avec le while(),
> mais là les résultats écrasent à chaque fosi les précédents, et un seul
> est finalement renvoyé.
>


en fait non puisqu'elle s'arrête à la première occurrence trouvée grace
au x=limit qui provoque la fin de la boucle while ou retourne false dans
le cas ou aucune occurrence n'est trouvée.
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 13h04.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,10259 seconds with 11 queries