Support getElementById ?

Le
Pierre Goiffon
[Crosspost sur fr.comp.infosystemes.www.auteurs et fr.comp.lang.javascript,
Suivi sur fr.comp.lang.javascript]

En vue de remplacer des document.all dans un script, je voulais utiliser
getElementById. Seulement j'ai comme un doute : est-ce que IE 5.0 supporte
bien cette méthode ? Suis-je obligé de conserver un if (document.all) {}
else if (document.getElementById) {} ?
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
M. Frederic Saunier
Le #21906041
est-ce que IE 5.0 supporte bien cette méthode ?


Oui, d'aprés ce que tu peux lire en bas de page:
http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/getelem entbyid.asp

Suis-je obligé de conserver un if (document.all) {...}
else if (document.getElementById) {...} ?



Non, par contre il te faut conserver un:
if( typeof document.getElementById != 'undefined')
;

Par exemple NN 4.79 ne comprend pas cette méthode.

--
Frédéric SAUNIER
Certified Macromedia Flash MX Developper
ENLIVE
92100 Boulogne-billancourt
FRANCE
Tel. 01.46.94.94.46


"Pierre Goiffon"
[Crosspost sur fr.comp.infosystemes.www.auteurs et fr.comp.lang.javascript,
Suivi sur fr.comp.lang.javascript]

En vue de remplacer des document.all dans un script, je voulais utiliser
getElementById. Seulement j'ai comme un doute : est-ce que IE 5.0 supporte
bien cette méthode ? Suis-je obligé de conserver un if (document.all) {...}
else if (document.getElementById) {...} ?

Pierre Goiffon
Le #21906021
M. Frederic Saunier wrote:
est-ce que IE 5.0 supporte bien cette méthode ?


Oui, d'aprés ce que tu peux lire en bas de page:



http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/getelementbyid.asp

Argll pas pensé à vérifier si l'information ne se trouvait pas dans le msdn
huhu
Merci de l'URL

Suis-je obligé de conserver un if (document.all) {...}
else if (document.getElementById) {...} ?



Non, par contre il te faut conserver un:
if( typeof document.getElementById != 'undefined')
;

Par exemple NN 4.79 ne comprend pas cette méthode.



Pas sûr d'avoir compris : NN4 ne comprend pas id (document.getElementById)
mais if (typeof... ?

--
Pour me répondre par mail privé, merci de supprimer _NOSPAM_ de mon
adresse.

Un grand merci à OE Quote Fix pour rendre OE utilisable :)
=> http://home.in.tum.de/~jain/software/oe-quotefix/
M. Frederic Saunier
Le #21905991
Je n'avais pas vu que tu faisais le test "if (document.getElementById)"

Ça n'empêche pas que ce test provoquera une erreur javascript
sur NN 4.79 puisque la mèthode n'existe pas. C'est pour cela qu'il faut
faire un "typeof(object)". "typeof" n'évaluera pas l'objet tandis que ton test oui.


--
Frédéric SAUNIER
Certified Macromedia Flash MX Developper
ENLIVE
92100 Boulogne-billancourt
FRANCE
Tel. 01.46.94.94.46

"Pierre Goiffon"
M. Frederic Saunier wrote:
>> est-ce que IE 5.0 supporte bien cette méthode ?
> Oui, d'aprés ce que tu peux lire en bas de page:
>
http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/getelem entbyid.asp

Argll pas pensé à vérifier si l'information ne se trouvait pas dans le msdn
huhu
Merci de l'URL

>> Suis-je obligé de conserver un if (document.all) {...}
>> else if (document.getElementById) {...} ?
>
> Non, par contre il te faut conserver un:
> if( typeof document.getElementById != 'undefined')
> ;
>
> Par exemple NN 4.79 ne comprend pas cette méthode.

Pas sûr d'avoir compris : NN4 ne comprend pas id (document.getElementById)
mais if (typeof... ?

--
Pour me répondre par mail privé, merci de supprimer _NOSPAM_ de mon
adresse.

Un grand merci à OE Quote Fix pour rendre OE utilisable :)
=> http://home.in.tum.de/~jain/software/oe-quotefix/

Bobe
Le #21905971
M. Frederic Saunier nous a dit le 29/04/2004 16:55:

Ça n'empêche pas que ce test provoquera une erreur javascript
sur NN 4.79 puisque la mèthode n'existe pas.




Euh, non. L'absence des parenthèses à getElementById permet de tester la
présence de cette méthode via une structure de contrôle telle que if() donc ça
ne provoquera pas d'erreur sous NN 4.x

--
Bobe (Aurélien Maille)
http://webnaute.net

"la vie d'un geek est un combat perpétuel contre l'imperfection"
Pierre Goiffon
Le #21905961
Bobe wrote:
Euh, non. L'absence des parenthèses à getElementById permet de tester
la présence de cette méthode via une structure de contrôle telle que
if() donc ça ne provoquera pas d'erreur sous NN 4.x



OK, merci à tous pour les réponses !

--
Pour me répondre par mail privé, merci de supprimer _NOSPAM_ de mon
adresse.

Un grand merci à OE Quote Fix pour rendre OE utilisable :)
=> http://home.in.tum.de/~jain/software/oe-quotefix/
Bobe
Le #21905951
simOn nous a dit le 29/04/2004 18:12:

ué ... enfin netscape 4.79, je suis partisan de le zapper.

vous développez encore vos sites compatibles netscape 4.x vous ?



L'intérêt de la chose est justement de zapper proprement NN 4.x:

if( document.getElementById ) // navigateur qui comprend un minimum le DOM
{
// code qui ne sera pas exécuté par NN 4.x histoire
// d'éviter une ribambelle d'erreurs de script
}

--
Bobe (Aurélien Maille)
http://webnaute.net

"la vie d'un geek est un combat perpétuel contre l'imperfection"
simOn
Le #21905941
M. Frederic Saunier wrote:
est-ce que IE 5.0 supporte bien cette méthode ?



Oui, d'aprés ce que tu peux lire en bas de page:
http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/getelementbyid.asp


Suis-je obligé de conserver un if (document.all) {...}
else if (document.getElementById) {...} ?




Non, par contre il te faut conserver un:
if( typeof document.getElementById != 'undefined')
;

Par exemple NN 4.79 ne comprend pas cette méthode.



ué ... enfin netscape 4.79, je suis partisan de le zapper.

vous développez encore vos sites compatibles netscape 4.x vous ?
Pleurote du Panicaut
Le #21905911
Dans le message c6r9da$7ak$,
Bobe
simOn nous a dit le 29/04/2004 18:12:

ué ... enfin netscape 4.79, je suis partisan de le zapper.

vous développez encore vos sites compatibles netscape 4.x vous ?



L'intérêt de la chose est justement de zapper proprement NN 4.x:

if( document.getElementById ) // navigateur qui comprend un minimum le DOM
{
// code qui ne sera pas exécuté par NN 4.x histoire
// d'éviter une ribambelle d'erreurs de script
}



Plus simple :
if (document.layers) location.href="brontosaure.htm";
M. Frederic Saunier
Le #21905901
Euh, non. L'absence des parenthèses à getElementById permet de tester la
présence de cette méthode via une structure de contrôle telle que if() donc ça
ne provoquera pas d'erreur sous NN 4.x



Tu as raison. En fait j'utilise toujours typeof(variable),
jamais une évaluation brute puisque je trouve totalement illogique
que ça ne provoque pas d'erreur quand la variable n'existe pas.

Je m'expliques :
<script type="text/javascript">
if(bar) //==> Provoque l'erreur javascript "undefined variable"
;

if(window.bar) //==> Ne provoque aucune erreur pourtant "toto" == "window.toto"
;

//DANS TOUS LES CAS
if(typeof bar != 'undefined') //==> Ne provoque aucune erreur
;
</script>

--
Frédéric SAUNIER
Certified Macromedia Flash MX Developper
ENLIVE
92100 Boulogne-billancourt
FRANCE
Tel. 01.46.94.94.46

"Bobe"
M. Frederic Saunier nous a dit le 29/04/2004 16:55:
>
> Ça n'empêche pas que ce test provoquera une erreur javascript
> sur NN 4.79 puisque la mèthode n'existe pas.
>

Euh, non. L'absence des parenthèses à getElementById permet de tester la
présence de cette méthode via une structure de contrôle telle que if() donc ça
ne provoquera pas d'erreur sous NN 4.x

--
Bobe (Aurélien Maille)
http://webnaute.net

"la vie d'un geek est un combat perpétuel contre l'imperfection"
Publicité
Poster une réponse
Anonyme