Javascript erzeugt html code problem

  • Hi,

    ich lasse per javascript html code erzeugen, so dass eine box mit text entsteht, dies geht auch prima, ich möchte jetzt, dass in dieser erzeugten box auch ein link ist mit dem wiederum an einer anderen stelle code erzeugt wird, dies macht er auch, allerdings verschwindet dann die vorher erzeugte, wie kann ich dies unterbinden?

    habe dies aktuell so

    function popLayer(a, i, pos, test){
    if(!descarray[a]){descarray[a]="<font color=red>Dieses PopUp (#"+a+") ist nicht korrekt definiert - Beschreibung fehlt</font>";}
    if (navigator.family == "gecko") {pad="0"; bord="1 bordercolor=black";}
    else {pad="1"; bord="0";}

    if (test==0) {
    text = new Array(descarray.length);
    text = descarray;
    desc1 = "<table cellspacing=0 cellpadding="+pad+" border="+bord+"><tr><td>\n"
    +"<table cellspacing=0 cellpadding=0 border=0 width=500px height="+i+"px><tr><td>"
    +"<div style='position:absolute; top:0px; left:0px; background-color:#FFD700; width:500px; "
    +"height:"+i+"px; filter:alpha(opacity=60); z-index:1'></div><div style='position:absolute; top:0px; left:10px; width:500px; height:"+i+"px; z-index:2'>"
    +"<h3 style='margin-top:10px; text-align:center'>Informationen zum gewählten Server</h3>"
    +"<font size=-1>\n"
    +text[a]
    +"\n</div>"
    +"<div style='position:absolute; top:5px; left:5px; width:500px; height:"+i+"px; filter:alpha(opacity:5); "
    +"background-color:black; z-index:0;'"
    +"</td></tr></table>\n"
    +"</td></tr></table>";
    }

    else {
    text = new Array(descarray2.length);
    text = descarray2;
    desc2 = "<table cellspacing=0 cellpadding="+pad+" border="+bord+"><tr><td>\n"
    +"<table cellspacing=0 cellpadding=0 border=0 width=500px height="+i+"px><tr><td>"
    +"<div style='position:absolute; top:0px; left:0px; background-color:#FFD700; width:500px; "
    +"height:"+i+"px; filter:alpha(opacity=60); z-index:1'></div><div style='position:absolute; top:0px; left:10px; width:500px; height:"+i+"px; z-index:2'>"
    +"<h3 style='margin-top:10px; text-align:center'>Informationen zum gewählten Server</h3>"
    +"<font size=-1>\n"
    +text[a]
    +"\n</div>"
    +"<div style='position:absolute; top:5px; left:5px; width:500px; height:"+i+"px; filter:alpha(opacity:5); "
    +"background-color:black; z-index:0;'"
    +"</td></tr></table>\n"
    +"</td></tr></table>";

    }


    if(navigator.family =="nn4") {
    if (test==0) {
    document.object1.document.write(desc1);
    document.object1.document.close();
    document.object1.left=525;
    document.object1.top=pos;
    }
    else {
    document.object1.document.write(desc2);
    document.object1.document.close();
    document.object1.left=525;
    document.object1.top=pos;
    }
    }

    else if(navigator.family =="ie4"){
    if (test==0) {
    object1.innerHTML=desc1;
    object1.style.pixelLeft=525;
    object1.style.pixelTop=pos;
    }
    else {
    object1.innerHTML=desc2;
    object1.style.pixelLeft=525;
    object1.style.pixelTop=pos;
    }
    }

    else if(navigator.family =="gecko"){
    if (test==0) {
    document.getElementById("object1").innerHTML=desc;
    document.getElementById("object1").style.left=525;
    document.getElementById("object1").style.top=pos;
    }
    else {
    document.getElementById("object1").innerHTML=desc2;
    document.getElementById("object1").style.left=525;
    document.getElementById("object1").style.top=pos;
    }
    }
    }

    je nachdem mit welchen werten ich die funktion aufrufe, wird entweder das eine oder das andere desc1 oder desc2 erzeugt

  • Ich hoffe du hast in deiner Orginalversion Kommentare und eingerückten Quellcode, es wäre nett , wenn du uns auch daran teilhaben lassen würdest.

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • ja habe ich aber beim hereinkopieren werden die einrückungen herausgenommen

    ich denke er überschreibt bei object1.innerHTML das bereits bestehende object1.innerHTML objekt wodurch dieses verschwindet und er nur das andere anzeigt
    wie kann ich dies ändern? gibts object2 ?? oder sowas?

  • Deklariere eine globale Integervariable, die du immer inkrementieren kannst, dann erstelle dir ein Objekt aus den String object+"value" damit kannst du n-mal den Durchlauf machen.

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • meinst du sowas wie

    var x=1;
    object1 = object+"x"
    x++;
    object = hans+"x"
    ??

    oder so=

    a = new object();
    a = object1;
    a.innerHTML=... ??

    oder wie meinst du das?

    aber geht dann sowas wie object1.innerHTML?? sobald ich object2.innerHTML aufrufe geht das nicht mehr und ich kriege die fehlermeldung object2 ist unbekannt

  • Ich glaube, dass ging ungefähr so

    var zahl = 1; // Startzahl

    function test(){
    window['option'+zahl+''] = zahl+"";
    zahl++;
    }

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ