Les Allergies
Alimentaires
Posez votre question Signaler

Remplacement d'un texte avec <div>

Puzzle_ 9Messages postés 28 novembre 2006Date d'inscription - Dernière réponse le 20 janv. 2007 à 14:00
Bonjour,
Remplacer un texte par un autre au survol d'un bouton se fait avec :
<img src="bouton.gif" onmouseover="document.getElementById('chg').innerHTML = 'Texte de remplacement';"
onmouseout="document.getElementById('chg').innerHTML = 'Texte par défaut';">
<div id="chg">Texte par défaut</div>
Les lignes suivantes me semblaient équivalentes :
<script> function ecrire() {document.write('Texte par défaut')} </script>
<img src="bouton.gif" onmouseover="document.getElementById('chg').innerHTML = 'Texte de remplacement';"
onmouseout="document.getElementById('chg').innerHTML = '<script>ecrire()</script>';">
<div id="chg"><script>ecrire()</script></div>
Or, 'Texte de remplacement' disparait bien mais n'est pas remplacé par 'Texte par défaut' lorsque la souris quitte le bouton. Je ne vois pourtant pas de différence de principe entre ces 2 versions...
'texte par défaut' est le résultat d'une fonction JavaScript de mon application, c'est pourquoi je dois utiliser cette forme.
Quelqu'un voit-il une explication ou une alternative ?
Merci et bonne année...
Lire la suite 

Remplacement d'un texte avec <div> »

3 réponses
Réponse
+1
moins plus
Ce n'est pas la bonne facon de procéder car d'un coté tu as ta fonction qui écrit, et en marquant :
document.getElementById('chg').innerHTML = '<script>ecrire()</script>';"> 

tu demande à ce que le résultat de ton script s'affiche dans ta DIV;
Or qu'est réellement le résultat de ta fonction ? Rien car elle ne retoure rien !

Ce qu'il faut que tu marque pour ta fonction c'est :
 function ecrire() { return 'Texte par défaut'; } 


Ainsi ca devrait beaucoup mieux fonctionner.
Ajouter un commentaire
Réponse
+1
moins plus
oui en fait, j'ai pas testé, mais je pense que dans ton div, il s'écrit alors littéralement "<script>ecrire()</script>"...
Le code n'est pas executé il prend ça comme une simple chaine de caractère !

Il faut en effet faire quelque chose comme :
document.getElementById('chg').innerHTML = getMonTexte()


où getMonTexte est une fonction retournant une chaine :
function getMonTexte()
{
   return "La chaine que tu veux afficher";
}
Ajouter un commentaire
Réponse
+0
moins plus
Merci de ces 2 réponses, je me replonge dans le programme...
Ajouter un commentaire
Ce document intitulé « Remplacement d'un texte avec <div> » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?