Problème très bizarre avec Div.innerHTML

cs_tonic1 Messages postés 37 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 2 mai 2006 - 7 avril 2006 à 19:49
cs_guybrush Messages postés 14 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 20 mai 2009 - 20 mai 2009 à 16:51
Bonjour,

j'ai un gros problème, et qui me semble très bizarre.

Dans mon code, quand je tappe :

nom_de_mon_div.innerHTML="coucou";

Aucun probleme sous IE et Firefox.

Si maintenant, j'écris :

nom_de_mon_div.innerHTML="coucou";

Ca ne marche tres bien sous FireFox mais pas sous IE.

Y a t'il des restrictions sous IE, ou quelque chose à spécifier ?

Merci d'avance.

24 réponses

Phil_Free Messages postés 275 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 28 avril 2006 11
7 avril 2006 à 20:36
Salut,

Et comme ça:

nom_de_mon_div.innerHTML="coucou<\/a>";
0
cs_tonic1 Messages postés 37 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 2 mai 2006
8 avril 2006 à 00:10
non ca n est pas ça, je comprend vraiment pas.

si je fais ca :

nom_de_mon_div.innerHTML="< a href='#'>coucou";

ca marche, c 'est a dire si je met un espace entre "<" et "a".

Le probleme, c est qu a ce moment, la balise n est pas interpréte comme un lien.

Si j enleve l espace j ai une erreur JS : "Erreur d'execution inconnue".

Qqun a t il une solution?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 avril 2006 à 09:22
Bonjour,
pourtant aucun problème avec IE :

<script type="text/javascript">
ex.innerHTML="Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
0
cs_tonic1 Messages postés 37 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 2 mai 2006
8 avril 2006 à 10:17
oui l erreur est ailleurs, je fais

mon_div.innerHTML dans une fonction javascript, donc il n y a pas de probleme.

C est vraiment la balise "" qui déconne, si je met coucou, ca va marcher par exemple, mais evidement la balise de lien ne sera pas interprétée.

le fait de mettre une balise de lien "" fait tout planter.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 avril 2006 à 10:23
0
Phil_Free Messages postés 275 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 28 avril 2006 11
8 avril 2006 à 10:23
Si tu nous donnais le code qui est autour et pas juste 2 lignes, il serait peut-être possible de t'aider ...
0
cs_tonic1 Messages postés 37 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 2 mai 2006
8 avril 2006 à 11:29
Ben le probleme c'est que y bcp bcp de code autour, c'est un explorateur JS de dossier enregistre dans une bdd.

Voici la fonction qui fait l innerHtml :


function affiche_plus(num_div)
{

z=0;
trouve_plus=false;
cherche_id=0;
avoir_enfant=false;
while((z<taille_div)&&(trouve_plus==false))
{
if(tableau_div[z]==num_div)
{
trouve_plus=true;
}
else
{
z++;
}
}
num_id='';
longueur_id=num_div.length;

while (num_div.charAt(cherche_id)!='p')
{
cherche_id++;
}
cherche_id++;
while (cherche_id<longueur_id)
{
num_id=num_id+num_div.charAt(cherche_id);
cherche_id++;
}
avoir_enfant=rechercher_si_enfant(num_div);

if (avoir_enfant==false)
{
avoir_enfant=as_tu_des_medias(num_div);
}

if (avoir_enfant==true)
{

document.getElementById(num_div+"_savoir_action").style.display = "block";
document.getElementById(num_div+"_savoir_action").innerHTML="";

}
else
{
document.getElementById(num_div+"_savoir_action").innerHTML="";
document.getElementById(num_div+"_savoir_action").style.display = "block";
}

avoir_enfant=false;
document.getElementById(num_div).style.display = "block";

}

en gros, si je met un "< a" a la place de "<a" (je met un espace), ca marche sinon ca plante.
Je rappelle que sous FireFox, ca marche tres bien, c'est sous IE que ca plante.

Merci d'avance.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 avril 2006 à 11:47
toujours difficile de répondre ( pour moi, Phil_free saura peut-être lui ? )
car : appel de cette fonction ? que contient num_div ? comment est la balise div ?

et avec un extrait :

<script type="text/javascript">
num_div="x"; // pour le test
document.getElementById(num_div+"_savoir_action").innerHTML=
"Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
0
cs_tonic1 Messages postés 37 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 2 mai 2006
8 avril 2006 à 11:55
en gros pour faire simple :

document.getElementById(num_div+"_savoir_action").innerHTML="coucou";

ca ca marche tres bien, que se soit sous ie ou firefox

document.getElementById(num_div+"_savoir_action").innerHTML="coucou";

ca ca ne marche pas sous IE mais ca marche sous Firefox.

Je n y comprend vraiment bien, mon id div est correct, ca vraiment la balise qui fait planter, me donnant l'erreur : "erreur d'excecution inconnue", donc je suis pas avancé avec ce genre d'erreur!
0
Phil_Free Messages postés 275 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 28 avril 2006 11
8 avril 2006 à 12:11
C'est sans doute une erreur de syntaxe, essaie de mettre cette alert ici:

if (avoir_enfant==true) {
alert("");
document.getElementById(num_div+"_savoir_action").style.display = "block";
document.getElementById(num_div+"_savoir_action").innerHTML="";
}

Regarde ensuite le contenu de l'alerte, est-ce bien ce que tu désires ?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 avril 2006 à 12:21
appliquer ce que dit Phil_Free car

document.getElementById(num_div+"_savoir_action").innerHTML="coucou";
OU

document.getElementById(num_div+"_savoir_action").innerHTML="Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
0
Phil_Free Messages postés 275 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 28 avril 2006 11
8 avril 2006 à 12:26
Ensuite dans ton code, la variable suivante (en rouge) où a-t-elle été définie, elle vient d'où ?

while((z < taille_div )&&(trouve_plus==false)) {
0
cs_tonic1 Messages postés 37 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 2 mai 2006
8 avril 2006 à 13:39
c est une variable globale, mais le probleme ne vient vraiment pas de la, c vraimen l inerHTML qui craque.

Peut etre est ce dans le structure de mes div que ca ne va pas, je ne sais pas ....
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 avril 2006 à 15:24
ne te bloque pas là où tu crois qu'il y a une erreur :
elle n'est pas dans l'ajout dans le innerHTML d'un Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
0
cs_guybrush Messages postés 14 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 20 mai 2009
18 mai 2009 à 01:00
Je connais le même problème dans un de mes scripts et je m'arrache les cheveux !!

Une solution a finalement été trouvée ou c'est un problème insoluble ??

Pareil : ....innerHTML='texte'; ça fonctionne pas, mais ....innerHTML='texte'; ou ....innerHTML='texte'; ça fonctionne !

Le plus étrange dans tout ça, c'est que dans d'autres parties de mon code je mets de liens dans des div avec innerHTML et ça fonctionne sans problèmes ...

Quelqu'un d'aimable peut venir à mon secours ?

Merci d'avance !

Olivier
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
18 mai 2009 à 10:14
Bonjour,

t'as vu que le message datait de 3 ans ? c'est long 3 ans !
et si si ( l'impératrice ) ça fonctionne parfaitement,
mais sans mettre href, va pas faire grand chose ton lien....
essaye donc :

   

   

    <script>
        document.getElementById("d").innerHTML="mon Site] [M'écrire] Bul
0
cs_guybrush Messages postés 14 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 20 mai 2009
18 mai 2009 à 16:46
Merci pour ta réponse.

Oui oui (le pantin du pays des jouets ...), j'avais bien vu que ce topic datait d'il y a bien longtemps. Ca pose un problème de l'avoir déterré ?

Sinon, bien sur, le genre de script que tu me donnes fonctionne parfaitement. Mais dans certains cas (dans quels cas ? là est la question ...) avec IE, ça ne fonctionne pas.

Provisoirement, j'ai utilisé une technique pas vraiment optimisée mais qui fonctionne. Ce div à l'intérieur duquel IE ne veut pas mettre de ien étant placé lui même dans un autre div avec un id, j'ai utilisé la fonction "replace" de javascript :

if(Internet_explorer){
document.getElementById("a").innerHTML = document.getElementById("a").innerHTML.replace('

','[# lien]');
}else{
document.getElementById("b").innerHTML='[# lien]';
}

Et là ça fonctionne enfin comme je veux !!!! Sacré IE va ...

Merci en tous cas de m'avoir répondu !

Bonne journée !

Cordialement,

Olivier
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
18 mai 2009 à 16:58
Bonjour,

>>Mais dans certains cas  avec IE, ça ne fonctionne pas.

réellement aucune raison !!!!  sans "erreur de ta part"
et qui est probablement "ailleurs" ( id correct ? , noms redondants ?, html+css ? ....  )
il faut débugger, ça dit tout
Navigateurs |Quelques Explications |----
Chrome
, contrôler page actuelle / Options pour développeurs
/ Console Javascript, ----
FireFox
, Outils / Console d'erreurs
et mieux : télécharger mon Site] [M'écrire] Bul
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
18 mai 2009 à 17:00
ou nous donner un exemple où ça plnate !
on devrait pouvoir te dire....
( car franchement, ce que tu fais, faudrait éviter !!!! )
0
cs_guybrush Messages postés 14 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 20 mai 2009
18 mai 2009 à 17:40
Merci pour ta réponse et pour tout ça mais je connais les différentes manières d'afficher les erreurs de scripts !

Le problème, c'est que dans ce cas là, IE renvoie une jolie "erreur d'exécution inconnue" ...

Avec tous les autres navigateurs (Firefox, Opera, safari, chrome ...), ça fonctionne nickel, mais avec ce satané IE ...

Enfin, mon problème est provisoirement résolu. Je tâcherais de m'y attarder un peu plus et d'essayer de trouver la vraie solution plus tard.

Cordialement,

Olivier.

PS : Je pense quand même pas mal maitriser le javascript. Pour preuve, voir par exemple mon site encore et toujours en cours de développement : http://www.international-paradise.com (vos avis sont les bienvenus :) )
0
Rejoignez-nous