michi: document.write

einen wunderschönen guten morgen
ich möchte mit document.write divs dynamisch zu einer html-datei hinzufügen (da ich ncoh nicht von vorn herein weiß, wie viele es werden).das ist die erste function.diese ruft eine function auf,welche die divs bewegt.das problem an der sache ist,das da eine fehlermeldung (ie5) kommt:object erwartet an postion 1,1.das liegt bestimmt daran,daß mit document.write das document neu geschrieben wird und meine function weg ist und dann nicht mehr gefunden wird.jetzt meine frage:was kann ich da machen?ich bräuchte auch eine lösung,die für ie und ns funzt.

danke schonmal
mfg michi

  1. hi,

    die divs musst Du schreiben, waehrend das document gerendert wird.

    Die Positionierung (per js) kannst Du erst vornehmen, wenn der body
    fertig geladen ist (z. B. per onload rufen) - vorher existieren die
    divs ja gar nicht.

    Wenn Du divs in einem vorhandenen document erzeugen willst, musst Du sie z. B.
    in ein parent-div hineinschreiben, andernfalls wuerdest Du das vorhandene document
    zerstoeren - und damit alle bestehenden Funktionen.

    hth

    Gruesse  Joachim

    1. hi,

      die divs musst Du schreiben, waehrend das document gerendert wird.

      Die Positionierung (per js) kannst Du erst vornehmen, wenn der body
      fertig geladen ist (z. B. per onload rufen) - vorher existieren die
      divs ja gar nicht.

      Wenn Du divs in einem vorhandenen document erzeugen willst, musst Du sie z. B.
      in ein parent-div hineinschreiben, andernfalls wuerdest Du das vorhandene document
      zerstoeren - und damit alle bestehenden Funktionen.

      als Zusatz,

      folgendes könnte dir weiterhelfen

      für NN 4.x der Konstruktor new Layer(); erzeugt eine neue Ebene (z.B. var Ebene1 = new Layer();)

      für IE 4.x die Funktion insertAdjacentHTML(); fügt zusätzlichen HTML-Code in ein HTML-Element ein (z.B. var Ebene1 = document.body.insertAdjacentHTML("BeforeEnd","<div ....>");), hier an das Ende von body

      NN 6.x / IE 5.x die Funktion createElement() (z.B. var Ebene1 = document.createElement("DIV");)

      Ist jedoch nicht so einfach das alles unter einen Hut zu bringen.
      Mit den Beispielen kannst du dann jeweils deine Ebene unter der Variable "Ebene1" ansprechen.

      gruss

      Curt

      1. danke für eure hilfe.werd wahrscheinlich die variante mit dem parent.window nehmen.

        mfg michi

      2. hi Curt,

        für NN 4.x der Konstruktor new Layer();

        stimmt, den habe ich ganz vergessen. Da bliebe noch hinzuzufuegen, dass man gleich clipping-Eigenschaften mitgeben sollte, weil andernfalls z. B. der Versuch, den Layer zu beschreiben, misslingt, bzw. die Darstellung nicht sichtbar bleibt. Hier fuer Mici zum testen:
        function init(){
         xy1    = new Layer(100);
         xy1.visibility = "show";
         xy1.clip.height = 100;
         xy1.clip.width = 200;
         xy1.bgColor  = "red";
         xy1.document.open();
         xy1.document.write("hallo");
         xy1.document.close();
        }

        wenn Du das clipping auskommentierst, wird der Inhalt nicht dargestellt.

        für IE 4.x die Funktion insertAdjacentHTML()

        das kannte ich noch nicht, werd ich mal antesten

        Gruesse  Joachim

  2. Hallo!

    Probiers doch mal bei sourceforge:
    http://sourceforge.net/projects/dynapi/

    Das koennte _genau_ das sein, was Du brauchst! Und viel mehr ;-)

    Gruß Georg