11545 sujets

JavaScript, DOM et API Web HTML5

Bonjour tout le monde !

Pour un de mes scripts, je souhaite récuperer le contenu textuel d'une balise.
Par exemple pour : <div id="titre">Un Titre</div> je voudrai récuperer le texte "Un Titre".

J'ai essaié de la manière suivant :
var titre = document.getElementById("titre");
var valeur = titre.innerHTML;

mais cela ne fonctionne pas.

Quelqu'un a une autre solution ? Merci d'avance.
Esseye ceci:

var titre = document.getElementById("titre");
var valeur = titre[b].nodevalue[/b];


innerhtml date de l'époque "DHTML" Smiley smile
Erf malheuresement ça ne marche pas : ça me met un "titre has no properties".
J'ai essaié un alert(titre) au cas où et ça marche.
Donc cette propriété n'a pas l'air de fonctionner avec les divs.

var titre = document.getElementById('titre');
var valeur = titre.firstChild.nodeValue;
alert(valeur);

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
		<title>Bla bla</title>
		<script type="text/javascript">
		function recupTxt()
		{
			var titre = document.getElementById('titre');
			var valeur = titre.firstChild.nodeValue;
			alert(valeur);
		}
		
		window.onload = recupTxt;
		</script>	
	</head>
	
	<body>
	<div id="titre">Un titre</div>
	</body>
</html>

Marche sous Firefox 1.03 et IE6, pas testé autre part.
Montre nous ton code complet ou un exemple en ligne, sinon on risque pas de pouvoir t'aider.
Ton code marche très bien, c'est bizzare Smiley confus .

Voilà le code de mon fichier js.js :
var titre = document.getElementById('titre');
var valeur = titre.firstChild.nodeValue;
alert(valeur);

Il n'y a rien avant, et ce qu'il y a après marche très bien si j'enleve ces trois lignes et sont dans des fonctions.

Voilà le code généré par le PHP du CMS utilisé :
[b]<script src="js.js"></script>[/b]<br /><div style="text-align: center;"><a href="index.php?file=Sections" style="text-decoration:none"><big><b>Sezioni</b></big></a></div><br />

<table width="100%" border="0" cellspacing="3" cellpadding="3">
<tr><td style="background: #485A84;border: 1px solid #232D46;" align="center">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td style="width: 5%;">&nbsp;</td>
<td style="width: 90%;" align="center"><big><b><div id="tit">That will be a good test</div></b></big></td>
<td style="width: 5%;" align="center"><a href="#" onclick="javascript:window.open('index.php?file=Sections&amp;nuked_nude=index&amp;op=pdf&amp;artid=2','projet','toolbar=yes,location=no,directories=no,scrollbars=yes,resizable=yes')"><img style="border: 0;" src="images/pdf.gif" alt="" title="Stampa in formato PDF" /></a></td></tr></table></td></tr>
<tr style="background: #596B94;"><td style="border: 1px dashed #232D46;"><b>Categoria :</b> Nessuno</td></tr>
<tr style="background: #596B94;"><td style="border: 1px dashed #232D46;"><b>aggiunto il :</b> 05.05.2005 12:22</td></tr>
<tr style="background: #596B94;"><td style="border: 1px dashed #232D46;"><b>Autore :</b> <a href="index.php?file=Members&amp;op=detail&amp;autor=Info-Rital">Info-Rital</a></td></tr>

<tr style="background: #596B94;"><td style="border: 1px dashed #232D46;"><b>letture :</b> 110</td></tr>
<tr style="background: #596B94;"><td style="border: 1px dashed #232D46;"><b>Commenti :</b>&nbsp;0 <small>[ <a href="#" onclick="javascript:window.open('index.php?file=Comment&amp;nuked_nude=index&amp;op=view_com&amp;im_id=2&amp;module=Sections','popup','toolbar=0,location=0,directories=0,status=0,scrollbars=1,resizable=0,copyhistory=0,menuBar=0,width=360,height=380,top=100,left=100');return(false)">Posta un commento</a> ]</small>
</td></tr><tr style="background: #596B94;"><td style="border: 1px dashed #232D46;"><b>Nota :</b>&nbsp;Non votato&nbsp;<small>[ <a href="#" onclick="javascript:window.open('index.php?file=Vote&amp;nuked_nude=index&amp;op=post_vote&amp;vid=2&amp;module=Sections','screen','toolbar=0,location=0,directories=0,status=0,scrollbars=0,resizable=0,copyhistory=0,menuBar=0,width=350,height=150,top=30,left=0');return(false)">Valuta</a> ]</small>

</td></tr><tr style="background: #596B94;"><td style="border: 1px dashed #232D46;"><br /><div id="all-box"><div id="content">Aliquam ac augue et diam imperdiet pharetra</div></div>[b]<div id="titre">2</div>[/b]<br /><div style="text-align: center;">&nbsp;&nbsp;</div></td></tr></table><br />
</td></tr></table></td></tr></table>


J'ai mis en gras les parties ayant un lien direct avec le problème.
Modérateur
Tu dois appeler ton fichier externe js dans la partie HEAD du document. Tu as aussi oublié l'attribut type :


<head>
<script type="text/javascript" src="js.js"></script>
...
</head>


Tu pourrais aussi donner un nom plus explicite à ton fichier js. Smiley cligne

Ton code html est aussi très affreux. Ca passe le validateur ca ? Je sais pas mais ca pourrait affecter le javascript si la structure du document est incorrect. Peut-être qu'elle l'est, mais disons que ca pourrait être plus épuré : pas de tables imbriquées, présentation séparée du contenu etc.
Modifié par Merkel (05 May 2005 - 15:36)
vérifie SURTOUT (pasque je suis sûr que l'erreur vient de là, car innerHTML marche toujours) que ta balise existe au moment où le script est éxécuté.

en effet, si ton script est joué avant que la page ne soit complètement chargée, rien ne marchera.

donc, lance ton script uniquement si window.onload == true
Merkel a écrit :
Tu pourrais aussi donner un nom plus explicite à ton fichier js. Smiley cligne

Ton code html est aussi très affreux. Ca passe le validateur ca ? Je sais pas mais ca pourrait affecter le javascript si la structure du document est incorrect. Peut-être qu'elle l'est, mais disons que ca pourrait être plus épuré : pas de tables imbriquées, présentation séparée du contenu etc.


Pour le nom plus explicite j'allais le faire Smiley cligne .
Pour la structure du code HTML, le code est affreux je sais mais c'est le code de sortie que produit le CMS. Mais je contribue énormement à ce CMS et je travaille actuellement sur l'abandon des tableaux quand ils ne sont pas utiles, de la création de thèmes Full-CSS et de l'allègement du code en sortie.
La différence de chargement entre un thème basique du CMS et ma evrsion du CMS avec mon thème sont impressionnantes !

Sinon, merci beaucoup Lisarael ! Tu avais completement raison. J'ai placé mon appel au fichier js un peu plus loin dans le code et ça marche Smiley ravi .
Dire que j'ai passé ma quasi totalité de l'après midi sur ce problème et toi tu le resous en 2 secondes Smiley ravi .

Sinon, c'est bien toi l'auteur de Editpage ? Si c'est le cas, je souhaiterai te proposer quelque chose, mais je pense que MSN est plus adèquat : info_rital@hotmail.com
Info-Rital a écrit :
(...)
Sinon, merci beaucoup Lisarael ! Tu avais completement raison. J'ai placé mon appel au fichier js un peu plus loin dans le code et ça marche Smiley ravi .
Dire que j'ai passé ma quasi totalité de l'après midi sur ce problème et toi tu le resous en 2 secondes Smiley ravi .

Sinon, c'est bien toi l'auteur de Editpage ? Si c'est le cas, je souhaiterai te proposer quelque chose, mais je pense que MSN est plus adèquat : info_rital@hotmail.com


c'est le problème classique.

c'est l'erreur que je trouve dans 90% des travaux de mes copains de classe qui me demandent de l'aide.

à partir du moment où tu comprends cette erreur, tu résous la plupart de tes problèmes js.
ça et la portée des variables.

--------------

je t'ai rajouté dans mes contacts.