Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Support getElementById ?

9 réponses
Avatar
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) {...} ?

9 réponses

Avatar
M. Frederic Saunier
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" a écrit dans le message de news:4090b590$0$22861$
[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) {...} ?

Avatar
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/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/
Avatar
M. Frederic Saunier
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" a écrit dans le message de news:409109de$0$659$
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/

Avatar
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"
Avatar
Pierre Goiffon
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/
Avatar
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
}

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

"la vie d'un geek est un combat perpétuel contre l'imperfection"
Avatar
simOn
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 ?
Avatar
Pleurote du Panicaut
Dans le message c6r9da$7ak$,
Bobe nous écrivit :
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";
Avatar
M. Frederic Saunier
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" a écrit dans le message de news:c6r7ia$pks$
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"