Errreur que je ne comprend pas

diaod8 Messages postés 26 Date d'inscription vendredi 14 décembre 2007 Statut Membre Dernière intervention 29 mai 2008 - 27 mai 2008 à 06:31
diaod8 Messages postés 26 Date d'inscription vendredi 14 décembre 2007 Statut Membre Dernière intervention 29 mai 2008 - 29 mai 2008 à 19:09
Bonjour tout le monde, j'aimerais que vous m'expliquer le probleme de ce codes sources qui contient mes question. Un gros merci d'avance tout le monde. P.S. Je développe sous bloc note ce temps ci, c'est p-e une erreur evidente mais anyway bonne chnace.

<html><script>
/* Mes question sont :
      (pour la parti   'ici'   après les étoiles : avec e.balise)
 * Pourquoi les navigateurs affichent seulement le dernier élément de a.e['dernier'] quand je met le innerHTML dans ma classe?
 * Pourquoi les navigateurs affichent toutes quand je fais un document.write dans ma classe? //Pourtant c'est supposé faire la même chose dans ce cas ici puisque document.write() écrit à la suite de ce qui est écrit jusqu'à la fonction et le document.getElementById(En).innerHTML += se concatène à se qui existe déjà dans le innerHTML de body, les deux cas sont supposé mené au même résultat dans ce cas ici. Mais moi je préfère le inner HTML car c'est plus fiable, car il est
 
      (Recuperation independante à la classe : sans e.balise)
 * Pourquoi que avec un document.getElementbyid().innerHTML en dehors de la classe ca fonctionne toujours?
*/
if (!document.body){document.write(' ');}
var stIsIE = /*@cc_on!@*/false;
if (a == undefined){
  var a = new Object();
  a.b = new Array();
  a.c = new Array();
  a.d = new Object();
  a.d.c = new Array();}
if (a.e == undefined){
  a.e = new Array();
  a.e.b = new Array();}
function E(){
//Initiation
  this.a_no = new Number(a.c.length);
  a.c[this.a_no] = this;
  this.a_e_no = new Number(a.e.length);
  a.e[this.a_e_no] = this;
//L'objet
  this.id = new String("ae" + this.a_e_no);
  this.nom = new String(this.id);
  this.chgId = function (p_id) {
    document.getElementById(this.id).id = p_id;  
    this.id = p_id;}
  this.chgNom = function (p_nom) {
    document.getElementById(this.id).name = p_nom;
    this.nom = p_nom;}
  this.obtId = function () {return this.id;}
  this.obtNom = function () {return this.nom;}  this.estId function (p_id) {return p_id this.id;}  this.estNom function (p_nom) {return p_nom this.nom;}
//Balise (Enlever les deux lignes)
  a.d = "";
  a.d += '

';
  alert(a.d);
  //document.body.innerHTML += '

'; //Seul le dernier E fonctionnent
  document.write('

');   //Tout les E fonctionnent
  this.balise = document.getElementById(this.id);      //Balise
  this.typeBalise = new String('div');}
/*******************************************************************************************************************************************************************************/
var e0 = new E();
var e1 = new E();
var e2 = new E();
//var e3 = new E();
//var e4 = new E();
/* Fonctionne selon si c'est document.write ou document.getElementById().innerHTML */




//
e0.balise.innerHTML = e0.obtId();
e1.balise.innerHTML = e1.obtId();
e2.balise.innerHTML = e2.obtId();
//e3.balise.innerHTML = e3.obtId();
//e4.balise.innerHTML = e4.obtId();
//




/* fonctionne toujours */
//document.getElementById(e0.obtId()).innerHTML = e0.obtId();
//document.getElementById(e1.obtId()).innerHTML = e1.obtId();
//document.getElementById(e2.obtId()).innerHTML = e2.obtId();
//document.getElementById(e3.obtId()).innerHTML = e3.obtId();
//document.getElementById(e4.obtId()).innerHTML = e4.obtId();
//for(i in a.c){document.write(i + ' = ' + a.c[i].obtId() + '
');}  //Ligne de debug. ça peut être utile pour l'objet global a déclaré au début du script
/* Ce qu'il y a dans la balise body au final */
alert(document.body.innerHTML);
</script></html>

4 réponses

maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 3
27 mai 2008 à 09:46
Bonjour,

Si tu es sous windows ce que je supose avec le bloc note, telecharge notepad++ ça te donnera des couleurs pour ton code sinon je ne comprend pas pourquoi tu as
<html>
    <script>
    </script>
</html>

Et le reste? y'a rien qui s'affiche sur ta page?
Sinon en general on ecris <script type="text/javascript">

En relisant ton code je comprend pour le body ;-)

document.write et innerHTML sont different document.write recharge la page et pas innerHTML je suppose qu'il serait plus judicieux d'utiliser innerHTML de partout.

Essaye deja ça ça devrait regler quelques problèmes

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
27 mai 2008 à 13:10
Bonjour,
    maelob++    et pour notepad++ ( ou Scite ou Programer's NotePad ou ... ) 
                        et pour document.write
    et puis... comment ? où ? ... appelle-t-on  tout ça ? comment ?
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
27 mai 2008 à 19:36
Bonjour,
perso je ferais plutôt
var O_div =
document.createElement('DIV');
O_div.id = this.id;
O_div.name =
this.nom;
document.body.appendChild(O_div);
à la place de
document.body.innerHTML += '

';
ou
encore
document.write('

');

...bien plus compatible W3C et on ne cherche pas à savoir comment
sont gérés les ajouts par les navigateurs.




;O)
0
diaod8 Messages postés 26 Date d'inscription vendredi 14 décembre 2007 Statut Membre Dernière intervention 29 mai 2008
29 mai 2008 à 19:09
Merci petoleTeam, merci beaucoup c'est bien le fun un navigateur =P, ma faire comme tu dit, c'est moins de cassage de tête.
0
Rejoignez-nous