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

valeurs undefined ???

17 réponses
Avatar
unbewusst.sein
Mon html :
<div id="item">
<h1 class="item"><a id="link" href="http://mail.google.com/">Google
Mail Yvon</a></h1>
<dl class="item">
<dt>Login&nbsp;:</dt>
<dd id="login">yvon.thoraval@gmail.com</dd>
<dt>Password&nbsp;:</dt>
<dd id="pass">monpassultrasecret</dd>
<dt>Notes&nbsp;:</dt>
<dd id="infos">Verification code: monpassultrasecretcrypté changé
pwd le 18 10 2010</dd>
</dl>
</div>


de manière à pouvoir modifier les valeurs, je dois d'abord les lire puis
les ajouter dans une form ; pour les lire je fais :
var title=document.getElementById("link").text;
var link=document.getElementById("link").getAttribute('href');
var login=document.getElementById("login").text;
var pass=document.getElementById("pass").text;
var infos=document.getElementById("infos").text;


je n'obtiens que les deux premières valeurs, celles qui manquent sont
celles qui sont dans un tag <dd />; ca voudrait dire qu'on a pas le
droit de mettre un id dans un dd ???

je ne vois pas pourquoi...

peut etre est-ce un bug de TenFourFoxG3 ???

je vérifie avec safari derechef.

--
« Ce n'est pas l'argent qui n'a pas d'odeur mais les banquiers
qui n'ont pas d'odorat. »
(Anonyme)

10 réponses

1 2
Avatar
unbewusst.sein
Une Bévue wrote:

je vérifie avec safari derechef.



exactement le ,ême résultat...
je précise qu'à la console, pas d'erreur, d'ailleurs le script qui ne
fini pas là; continue avec succès son job...
--
« Ce n'est pas l'argent qui n'a pas d'odeur mais les banquiers
qui n'ont pas d'odorat. »
(Anonyme)
Avatar
Pascal Poncet
Le 25/08/2011 19:04, Une Bévue a écrit :
<dd id="login"></dd>



Pas de problème pour mettre un ID.
C'est vrai pour tout élément HTML.

var login=document.getElementById("login").text;



Mais là, pas d'accord !
D'où sors-tu cette propriété "text" ?

Pour moi, elle n'est implémentée qu'en HTML5, pour les liens et ancres
seulement. Tu as une autre info là-dessus ?

Si l'erreur est confirmée, il te reste deux solutions pour obtenir ta
valeur :
- La propriété quasi-standard "innerHTML" (je ne connais pas de
navigateur qui ne l'implémente pas).
- La propriété "data" du noeud texte enfant, ce qui suppose d'aller
d'abord chercher ce descendant.


--
Cordialement,
Pascal
Avatar
unbewusst.sein
Une Bévue wrote:

var login=document.getElementById("login").text;



il faut écrire :
var login=document.getElementById("login").textContent;

du coup, je ne pige pas pourquoi ca a marché pour :
var title=document.getElementById("link").text;

qui correspond au html :
<h1 class="item"><a id="link" href="http://mail.google.com/">Google
Mail Yvon</a></h1>

--
« L'avantage de dire la vérité, c'est qu'on n'a pas à se rappeler
ce qu'on disait avant. »
(Quelqu'un...)
Avatar
unbewusst.sein
Pascal Poncet wrote:

Mais là, pas d'accord !
D'où sors-tu cette propriété "text" ?



de ma mémoire qui foire )))

Pour moi, elle n'est implémentée qu'en HTML5, pour les liens et ancres
seulement. Tu as une autre info là-dessus ?



non; la par hasard ca a marche sur un lien, je suis en xhtml1-strict.dtd
mais bon je peux très bien passer en html5.

Si l'erreur est confirmée, il te reste deux solutions pour obtenir ta
valeur :
- La propriété quasi-standard "innerHTML" (je ne connais pas de
navigateur qui ne l'implémente pas).



oui mais comme c'est du texte seul...

- La propriété "data" du noeud texte enfant, ce qui suppose d'aller
d'abord chercher ce descendant.



ah oui, mais je ne vois pas comment atteindre le noeud text d'une balise
du genre :
<tag id="monid">le texte désiré</tag>

mais bon Safari m'a aidé; car à la console quand j'ai entré :
document.getElementById("login").text

safari m'a suggéré :

document.getElementById("login").textContent

j'ai changé mon script accordingly et ca roule...

--
« L'avantage de dire la vérité, c'est qu'on n'a pas à se rappeler
ce qu'on disait avant. »
(Quelqu'un...)
Avatar
Pascal Poncet
Le 25/08/2011 20:39, Une Bévue a écrit :
safari m'a suggéré :

document.getElementById("login").textContent



Safari a raison, c'est l'équivalent normalisé du "innerText" de MSIE.

Du coup, ce dernier ne l'a implémenté que dans la version 9.
C'est pourquoi j'hésite encore à en conseiller l'emploi.

Mais j'ai cru comprendre que tu opérais uniquement sur Mac, non ?

j'ai changé mon script accordingly et ca roule...



Ce qui expliquerait cela ! ;-)


--
Cordialement,
Pascal
Avatar
SAM
Le 25/08/11 19:04, Une Bévue a écrit :
Mon html :
<div id="item">
<h1 class="item"><a id="link" href="http://mail.google.com/">Google
Mail Yvon</a></h1>
<dl class="item">
<dt>Login&nbsp;:</dt>
<dd id="login"></dd>
<dt>Password&nbsp;:</dt>
<dd id="pass">monpassultrasecret</dd>
<dt>Notes&nbsp;:</dt>
<dd id="infos">Verification code: monpassultrasecretcrypté changé
pwd le 18 10 2010</dd>
</dl>
</div>


de manière à pouvoir modifier les valeurs, je dois d'abord les lire puis
les ajouter dans une form ;



on s'demande pourquoi c'est pas directement dans ce form(ulaire)
mébon ...

pour les lire je fais :
var title=document.getElementById("link").text;
var link=document.getElementById("link").getAttribute('href');
var login=document.getElementById("login").text;
var pass=document.getElementById("pass").text;
var infos=document.getElementById("infos").text;


je n'obtiens que les deux premières valeurs, celles qui manquent sont
celles qui sont dans un tag<dd />; ca voudrait dire qu'on a pas le
droit de mettre un id dans un dd ???



non, c'est parce que tu emploies les choses un peu au hasard !

.text
ce n'est que pour le texte des options ou des liens

pour le reste, le contenu entre balises c'est :
.innerHTML

sauf pour textarea où ce sera value
(comme pour n'importe quel input de form, puisque le textarea est un
élément de form)

C'est donc un *gros* coup de bol que ça a eut eu fonctionné pour un des
trucs.


peut etre est-ce un bug de TenFourFoxG3 ???



toujours croire que c'est un bug personnel ! !

je vérifie avec safari derechef.



et ... qu'en dit-il ?

Ha Ha ! Il est bien d'accord ! hé hé hé ;-)


Bien entendu, on se méfiera grandement de ce innerHTML :
<http://stephane.moriaux.pagesperso-orange.fr/truc/innerHTML_danger>

--
Stéphane Moriaux avec/with iMac-intel
Avatar
unbewusst.sein
Pascal Poncet wrote:

Safari a raison, c'est l'équivalent normalisé du "innerText" de MSIE.

Du coup, ce dernier ne l'a implémenté que dans la version 9.
C'est pourquoi j'hésite encore à en conseiller l'emploi.

Mais j'ai cru comprendre que tu opérais uniquement sur Mac, non ?



oui oui et c'est une page "interne" où je sauvegarde mes mots de passe
clés de logiciel etc

je précise que ca marche aussi bien avec Safari Version 4.1.3
(4533.19.4) (c'est vraiment une "vieille version") et TenFourFoxG3 :
hack d'un ff moderne pour un vieux PPC G3; je suis sous Mac OS X
10.3.11; Apache 2 PHP 5.3.6.

--
« Qui veut cherche un moyen.
Qui ne veut pas cherche une excuse. »
(Proverbe chinois)
Avatar
SAM
Le 25/08/11 20:21, Pascal Poncet a écrit :
Le 25/08/2011 19:04, Une Bévue a écrit :
<dd id="login"></dd>
var login=document.getElementById("login").text;



Mais là, pas d'accord !
D'où sors-tu cette propriété "text" ?

Pour moi, elle n'est implémentée qu'en HTML5, pour les liens et ancres
seulement. Tu as une autre info là-dessus ?



Heu ... n'y comprenant rien, je ne lis pas les docs mais ....
.text
a fonctionné de tous temps pour les liens (même avec NC.3 sjnma)

Si l'erreur est confirmée, il te reste deux solutions pour obtenir ta
valeur :
- La propriété quasi-standard "innerHTML" (je ne connais pas de
navigateur qui ne l'implémente pas).



NC.3, NC.4, par exemple ?

- La propriété "data" du noeud texte enfant, ce qui suppose d'aller
d'abord chercher ce descendant.



'lors là yapuka tirer l'échelle pour ces pôvres Netscapes ! ;-)


--
Stéphane Moriaux avec/with iMac-intel
Avatar
unbewusst.sein
SAM wrote:

Bien entendu, on se méfiera grandement de ce innerHTML :



c'est #textContent d'après Safary 4+ et TenFourFoxG3
j'essaierai après demain sur mon iMac donc avec des navigateurs +
modernes...
--
« Qui veut cherche un moyen.
Qui ne veut pas cherche une excuse. »
(Proverbe chinois)
Avatar
SAM
Le 25/08/11 22:35, Une Bévue a écrit :
SAM wrote:

Bien entendu, on se méfiera grandement de ce innerHTML :



c'est #textContent d'après Safary 4+ et TenFourFoxG3
j'essaierai après demain sur mon iMac donc avec des navigateurs +
modernes...



textContent
a l'air de pas mal fonctionner
(je n'ai plus trop de vieux navigateur pour tester)

--
Stéphane Moriaux avec/with iMac-intel
1 2