• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

innerHTML bei Firefox...

Timmer

Mitglied
Hey, ich hab ein kleines Problem =)

Ich habe einen Kalender, bei dem man die Tage auswählen kann (wie Checkboxen, nur ohne Checkboxen ;D), und eine Anzahl der ausgewählten Tage. Um die Zahl habe ich einen <span>-Tag mit einer ID, um die Zahl ändern zu können. Wenn ich Tage auswähle, funktioniert auch alles, er zählt normal hoch. Das einzigste Problem, das wirklich nur bei Firefox besteht, ist, dass er statt der Zahl noch zusätzlich einen <div> und einen <span> hinzufügt.

Das sieht dann ungefähr so aus:
HTML:
<div>Sie haben <span id="ist_anzahl_erschtage"><div xmlns="http://www.w3.org/1999/xhtml"><span xmlns="http://www.w3.org/1999/xhtml">1</span></div></span> Erscheinungs-Termine ausgewählt.</div>

Das gleiche passiert komischerweise auch, wenn ich mit Firebug die Zahl ändere (bei 0 ist noch kein <div> bzw. <span> da...).

Hier mal der JavaScript Code:
Code:
function berechne_kal_erschtag(feldname) {
  var anz_gesetzt = 0;
  var len = get_form_var('anzahl_erschtermine');  
  for ( lauf = 1; lauf <= len; lauf++) {
    var name = 'kal_erschtag_' + lauf;
    var ele = document.forms[0].elements[name];
    var id = 'td_' + name;
    if ( get_form_var(name) > '') {
      anz_gesetzt ++;
      document.getElementById(id).style.backgroundColor = '#0FA0DF';
      if ( feldname == '') feldname = name;
    } else {
       document.getElementById(id).style.backgroundColor = '';
    }
  }
  document.getElementById('ist_anzahl_erschtage').innerHTML = anz_gesetzt;
  return true;
  
}

Da steht jetzt auch ziemlich viel Mist dabei, den ich hier nicht erklären will, weil er nicht relevant ist. Es geht einzig und allein um das 'anz_gesetzt' ;D

Jemand eine Idee?
 
innerHTML funktioniert auch im Firefox problemlos, wenn es bei dir nicht so ist, dann machst du etwas falsch. Aber mit dem Code, den du uns zeigst, läßt sich dir nicht helfen. versuche einen Testcase zu bauen, wo das Problem nachvollziehbar ist.
 
Gut, das wird zum Problem, hier ist alles intern und ich kann das System nicht exportieren, da ich auf die meisten Files garkeinen Zugriff habe... Ich habe die Codes aus einer älteren Anwendung kopiert, man muss ja nicht alles neu erfinden. Bei der älteren Anwendung ging es problemlos, bei der neuen fügt er den Mist hinzu...

Also, es muss auf jeden Fall am Browser liegen. Ich probiers nochmal auf anderen Systemen oder lass mir was anderes einfallen...
 
Benutzt du den XHTML-Header? Also
Content-Type: application/xhtml+xml

Weil es sieht so aus mit dem xmlns-Attribut.

Sonst, was sagt die Fehlerkonsole (Strg + Shift + J)?
 
Wie gesagt ein Testcase, du brauchst uns nicht dein komplettes System offen zu legen. Aber das Problem muss ja für uns nachvollziehbar sein.
 
Problem gelöst, für alle, dies wissen wollen: Die Anzahl der ausgewählten Tage war in einer Tabelle, jetzt hab ichs exportiert und es geht fehlerfrei. Warum das jetzt anders ist, weiß ich auch nicht, aber es geht :P
 
Das ließ sich aus deiner Beschreibung nur schwer erkennen, aber das ist bekannt, dass es bei Tabellen zu Problemen mit innerHTML kommen kann. Insbesondere im IE, aber den hattest du gar nicht erwähnt.

Das Problem ist, dass du nicht Teilstrukturen von Tabellen mit innerHTML erzeugen oder überschreiben kannst. Im Prinzip sollte innerHTML in dem Fall nur auf ein TD und dessen inhalt angewandt werden, alles andere ist unsicher und kann zu Fehlern führen.
 
Das hab ich ja gemacht, in einem <td> war ein <span> mit einer ID, über die ID habe ich den Inhalt des <span>'s geändert. Und die Änderung war von 0 auf 1, 2 oder 3, also auch nicht die Welt.

Für mich immernoch unbegreiflich, warum er da, statt die Zahl auszutauschen, gleich noch nen <div> und nen <span> in den <span> reinknallt... Im IE hats die ganze Zeit wunderbar funktioniert...

Naja, danke, trotzdem für den Erklärungsversuch ^^
 
Für mich immernoch unbegreiflich, warum er da, statt die Zahl auszutauschen, gleich noch nen <div> und nen <span> in den <span> reinknallt... Im IE hats die ganze Zeit wunderbar funktioniert...
Naja, das macht er auch nicht. Nie!

Wenn er das bei dir gemacht hat, dann macht dein Skript das. Aber das können wir natürlich nicht klären ohne es zu kennen.
 
Zurück
Oben