Mike: Klonen von <tr> im FF ja, im IE nein

Hi,

  
function clonit(maxi)  
{  
  
// variabeles Klonexperiment  
  
if(!maxi){var maxi = 3;}  
var objmutter   = document.getElementById('clonable');  
var objkind1    = objmutter.firstChild;  
var objkindlast = objmutter.lastChild;  
var anzahl      = objmutter.childNodes.length;  
  
if(anzahl >= maxi){return false;}  
  
if(maxi=='del'){  
if(anzahl >1 ){objmutter.removeChild(objkindlast);}  
return true;  
}  
  
var neu = '<tr><td>a</td><td>b</td><td>c</td></tr>';  
var alt = objmutter.innerHTML;  
  
objmutter.innerHTML= alt+neu;  
  
  
return false;  
}  

  
<p>  
<button type="button" onclick="clonit(5)">+</button>  
<button type="button" onclick="clonit('del')">-</button>  
</p>  
  
  
<table border="3" id="clonable"><tr><td>a</td><td>b</td><td>c</td></tr></table>  
  

Das funktioniert im FF ohne Fehler. Im IE8 allerdings nicht und der Fehler lautet:

----------------------------------------
Meldung: Unbekannter Laufzeitfehler
Zeile: 37
Zeichen: 1
Code: 0
URI: ***********.html

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

Das bezieht sich dann wohl auf: objmutter.innerHTML= alt+neu;

Wenn ich aber anstatt einer Tabllenzeile ein DIV nehme, dann geht es auch im IE:

// in der Funktion
var neu = '<p>a|b|c</p>';

// Im HTML
<div id="clonable"><p>a|b|c</p></div>

Wie kommt das zustande?

Mike

ps. Fragt nicht warum ich das so gelöst habe, die eigentliche Funktion ist sehr viel umfangreicher, und hier habe ich nur alles reduziert für die Fehlerreproduktion. Will sagen, natürlich könnte ich das Problem auch umgehen, aber darum geht es nicht.

  1. Hi,

    Das funktioniert im FF ohne Fehler. Im IE8 allerdings nicht und der Fehler lautet:

    Meldung: Unbekannter Laufzeitfehler

    Eine Suche im Archiv nach "innerhtml laufzeitfehler" liefert bspw.
    </archiv/2009/4/t185591/#m1231877>
    </archiv/2008/11/t179369/#m1184231>
    </archiv/2007/2/t146918/#m953371>

    Was daran, dich selber zu informieren, war für dich jetzt wieder zu schwierig?

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Hi,

      Eine Suche im Archiv nach "innerhtml laufzeitfehler" liefert bspw....

      Wusste nicht das es read_only Elemente bei MS für innerHTML gibt.

      Daher danke für die Antwort, aber...

      Was daran, dich selber zu informieren, war für dich jetzt wieder zu schwierig?

      ... das hättest du dir sparen können. Ich habe gesucht, nur das Wort Laufzeitfehler mit in die Frage zu setzen, war mir nicht in den Sinn gekommen. Wald vor Bäumen.

      Und vor allem das Wort "wieder" stört mich ganz gewaltig in diesem Satz. Ich suche immer zuerst und du hast mir bisher noch keinen Link(mit Ausnahme vom jetzigen) zu irgendeinem Problem geschickt, was eine Antwort so glasklar erklärt hätte. Du versuchst allerdings immer Links zu verbreiten was man unbedingt lesen sollte, auch wenn gar nicht bei der Problemlösung hilft.

      Aber wenn ich dich mal mit deinen eigenen (genau so sinnfreien)Waffen schlagen soll:

      Was war WIEDER zu schwierig für dich um dich zu informieren, dass deine Aussage nur falsch sein kann?

      Mike

      1. Hi,

        Was daran, dich selber zu informieren, war für dich jetzt wieder zu schwierig?

        ... das hättest du dir sparen können. Ich habe gesucht, nur das Wort Laufzeitfehler mit in die Frage zu setzen, war mir nicht in den Sinn gekommen. Wald vor Bäumen.

        Sorry, aber das halte ich für kein "Wald-und-Bäume"-Problem - sondern für eins von der Sorte "zu $%!& zum Suchen".

        Und vor allem das Wort "wieder" stört mich ganz gewaltig in diesem Satz. Ich suche immer zuerst

        Aber wohl meist mit wenig Erfolg.

        und du hast mir bisher noch keinen Link(mit Ausnahme vom jetzigen) zu irgendeinem Problem geschickt, was eine Antwort so glasklar erklärt hätte.

        Ich weiss, du heulst immer rum, wenn die Antwort nicht so "glasklar" ist, dass du selbst nicht mehr mitdenken musst.

        Du versuchst allerdings immer Links zu verbreiten was man unbedingt lesen sollte, auch wenn gar nicht bei der Problemlösung hilft.

        Du bist nicht in der Lage zu erkennen, was überhaupt helfen könnte - weil du dich immer sofort verweigerst, wenn man dir sagt, dass du dich zu einem Thema mal etwas umfassender *informieren* sollst.

        Aber wenn ich dich mal mit deinen eigenen (genau so sinnfreien)Waffen schlagen soll:

        Was war WIEDER zu schwierig für dich um dich zu informieren, dass deine Aussage nur falsch sein kann?

        Das war sie nicht - aber dass du auch das wieder nicht kapierst, überrascht natürlich wenig.
        Die Frage war im Bereich JavaScript gestellt, und darauf habe ich meine Antwort bezogen.

        Deine dortige Antwort hingegen schlägt eine Lösung vor, die u.a. Flash erfordert - und war damit auch nicht viel mehr im Sinne des Fragers.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
        1. Hi,

          Das war sie nicht - aber dass du auch das wieder nicht kapierst, überrascht natürlich wenig.
          Die Frage war im Bereich JavaScript gestellt, und darauf habe ich meine Antwort bezogen.

          Wenn du dich selbst belügen möchtest, bitte sehr...
          Ja du hast geschrieben das soetwas in javascript für dich nicht vorstellbar wäre, aber du hast auch geschrieben:

          Eine solche Möglichkeit "darf" es bei einem solch sensiblen Thema nicht geben.

          Nein!!!, das wäre absolut ausgeschlossen, völlig unmöglich.... Willst du jetzt allen Ernstes  erzählen, in Flash denkst du da anders drüber?

          Aber hätte auch nicht erwartet, dass du zu deinen Fehlern stehst.

          Genauso wenig wie du einsehen willst, dass mein Thread zum Browsercrash eben durch Cookieprozeduren ausgelöst wurde. Seit ich das weiss, habe ich auch viele ähnliche Geschichten dazu im Netz gefunden, für ein Sache die du nicht bereit bist zu akzeptieren, eben wie immer, Fehler einsehen ist nich dein Ding, eher den Allesbesserwisser raushängen lassen.

          Mike

          1. Hi,

            Eine solche Möglichkeit "darf" es bei einem solch sensiblen Thema nicht geben.

            Nein!!!, das wäre absolut ausgeschlossen, völlig unmöglich.... Willst du jetzt allen Ernstes  erzählen, in Flash denkst du da anders drüber?

            Willst du mir jetzt allen Ernstes erzählen, du wüsstest Anführungszeichen nicht zu deuten?

            Theoretisch darf es die nicht geben; und JavaScript hält sich da auch weitgehend dran.
            Dass darüber hinausgehende Techniken wie Flash oder JAVA andere Möglichkeiten haben, ist wenig überraschend, schliesslich haben die allgemein mehr Befugnisse und Möglichkeiten auf dem Client-Rechner.

            Genauso wenig wie du einsehen willst, dass mein Thread zum Browsercrash eben durch Cookieprozeduren ausgelöst wurde. Seit ich das weiss, habe ich auch viele ähnliche Geschichten dazu im Netz gefunden,

            Was ist denn daran bitte "ähnlich" zu deinem Problem?
            OK, dass du's mit dem Englischen nicht so hast, könnte vielleicht auch hier wieder erklären, dass du Zusammenhänge siehst, wo's keine gibt.
            Und die Problembeschreibung dort könnte auch von dir sein - der Autor erzählt zwar irgendwas von "Crashes" und "I have seen this with ..." (also ähnlich "konkret" wie deine "früher war das anders"-Aussagen) - und bringt dann aber nur ein Beispiel, wo JavaScript nicht ausgeführt wird ...

            (Und darüber hinaus, dass die Angaben zum Caching, die PHP bei Sessions per Default macht, im IE teilweise Probleme machen, insb. was Downloads angeht, ist auch nichts neues.)

            für ein Sache die du nicht bereit bist zu akzeptieren, eben wie immer, Fehler einsehen ist nich dein Ding, eher den Allesbesserwisser raushängen lassen.

            Der Einzige hier, der immer noch nicht einsehen will, bist du - und zwar dem Umstand, dass deine Vermutung zu deinem Problem absolut an den Haaren herbeigezogen, und durch nichts plausibel zu belegen ist.

            Du ziehst aus dem *zufälligen* zeitnahen Auftreten zweier Ereignisse den ungültigen Schluss, dass diese zusammenhängen *müssten*.
            Wenn man behaupten würde, das 10-Cent-Stück, dass dir am Vorabend des 11. September 2001 heruntergefallen ist, hätte ursächlich etwas mit den Anschlägen auf's WTC zu tun, wäre das nicht weniger hirnrissig.

            MfG ChrisB

            --
            Light travels faster than sound - that's why most people appear bright until you hear them speak.
  2. Hi,

    function clonit(maxi)
    {
    if(!maxi){var maxi = 3;}
    var objmutter   = document.getElementById('clonable');
    var objkind1    = objmutter.firstChild;

    
    > ~~~html
      
    
    > <table border="3" id="clonable"><tr><td>a</td><td>b</td><td>c</td></tr></table>  
    > 
    
    

    objmutter ist also ein table-Element.
    objkind1 ist demnach ein tbody-Element.

    var neu = '<tr><td>a</td><td>b</td><td>c</td></tr>';
    var alt = objmutter.innerHTML;
    objmutter.innerHTML= alt+neu;

      
    alt ist also tbody samt tr usw.  
    neu eine tr.  
      
    IE mag es nicht sonderlich, wenn tr in table statt in tbody eingehängt werden.  
      
    cu,  
    Andreas
    
    -- 
    [Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)  
    [O o ostern ...](http://ostereier.andreas-waechter.de/)  
      
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.