webo: vbscript hta document.write in funktion schreibt neue seite

hallo Forum,

Ich schreibe eine HTA und benutze dabei VBScript.
Die HTA sieht wie folgt aus:
Es ist ein Telefonnummernverzeichnis, das aus dem Active Directory die Benutzerdaten per LDAP abruft und in eine Tabelle schreibt. Oben habe ich ein DropDown Menü in dem man die Anfangsbuchstaben des Mitarbeiters den man sucht eingeben kann - das ändert dann die LDAP filter - und eine Tabelle mit den entsprechenden Informationen wird gezeichnet.

Funktioniert alles soweit super, nur wenn ich die
document.write - Methode innerhalb einer funktion verwende, wird immer eine neue Seite geöffnet und was vorher in der HTA stand ist weg.
Das heist ich habe dann nur noch die Tabelle, aber das DropDown Menü ist nich mehr da um einen anderen Filter zu wählen.

hat jemand eine Idee wie man das anders machen könnte?

  1. Gibt es vielleicht soetwas wie ein
    <span id=blabla></span>
    in dass nicht nur html-code sondern auch Scriptbefehle mit rein können?
    Das würde voll ausreichen...

  2. Yerf!

    hat jemand eine Idee wie man das anders machen könnte?

    Nimm doch statt document.write() einfach .innerHTML eines Container-Elementes. Dürfte zumindest die einfachste Variante sein.

    Gruß,

    Harlequin

    --
    <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
    1. Nimm doch statt document.write() einfach .innerHTML eines Container-Elementes. Dürfte zumindest die einfachste Variante sein.

      Hi harlequin.
      Ich hab sowas mal probiert gehabt, aber ich habe es nicht hinbekommen, vor das .innerHTML ein variables Object zu packen:

        
       document.write "<TABLE border=""0"" bordercolor = ""blue"" width= ""100%"" cellspacing=""3"" cellpadding=""6"" frame = ""border"" rules = ""all"">"  
       document.write "<TR bgcolor =""FFCC00""><TD width =""13%"" align = ""center""><p><B>Name</B></p></TD>"  
       document.write "<TD width =""13%"" align = ""center""><p><B>Vorname</B></p></TD>"  
       document.write "<TD width =""13%"" align = ""center""><p><B>Abteilung</B></p></TD>"  
       document.write "<TD width =""13%"" align = ""center""><p><B>Telefon1</B></p></TD>"  
       document.write "<TD width =""13%"" align = ""center""><p><B>Telefon2</B></p></TD>"  
       document.write "<TD width =""13%"" align = ""center""><p><B>Fax</B></p></TD>"  
       document.write "<TD width =""13%"" align = ""center""><p><B>Mobilfunk</B></p></TD>"  
       document.write "<TD width =""9%"" align = ""center""><p><B>Kurzwahl</B></p></TD></TR>"  
        
      for i=1 to 100  
        
       document.write "<TR bgcolor =""FFCC00""><TD width =""13%"" align = ""center""><p><span id=a"&(i)&"></span></p></TD>"  
       document.write "<TD width =""13%"" align = ""center""><p><span id=b"&(i)&"></span></p></TD>"  
       document.write "<TD width =""13%"" align = ""center""><p><span id=c"&(i)&"></span></p></TD>"  
       document.write "<TD width =""13%"" align = ""center""><p><span id=d"&(i)&"></span></p></TD>"  
       document.write "<TD width =""13%"" align = ""center""><p><span id=e"&(i)&"></span></p></TD>"  
       document.write "<TD width =""13%"" align = ""center""><p><span id=f"&(i)&"></span></p></TD>"  
       document.write "<TD width =""13%"" align = ""center""><p><span id=g"&(i)&"></span></p></TD>"  
       document.write "<TD width =""9%"" align = ""center""><p><span id=h"&(i)&"></span></p></TD></TR>"  
        
      next  
      document.write "</TABLE>"  
        
      x = 0  
        
      while not x=20  
        
      x=x+1  
      x=cStr(x)  
      strtest = "a"+x  
      x=cint(x)  
        
      <!-- und hier ist mein Problem: -->  
        
      "&strtest&".InnerHTML = "<q>blabla</q>"  
      
      

      Mein Problem ist, dass es die Variable vor .innerHTML nicht annimmt. Das ist sicherlich ein Anfängerfehler. Vielleicht hast du ja ne Idee, oder dir fällt noch ne andere einfachere Lösung ein.

      MfG WeBO

      1. Yerf!

        Mein Problem ist, dass es die Variable vor .innerHTML nicht annimmt. Das ist sicherlich ein Anfängerfehler. Vielleicht hast du ja ne Idee, oder dir fällt noch ne andere einfachere Lösung ein.

        Wenn du dem Element eine ID verpasst, kannst du mittels document.getElementById() drauf zugreifen.

        id = "DieID";
        elem = document.getElementById(id);
        elem.innerHTML = "TEXT";

        Gruß,

        Harlequin

        --
        <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
        1. Wenn du dem Element eine ID verpasst, kannst du mittels document.getElementById() drauf zugreifen.

          id = "DieID";
          elem = document.getElementById(id);
          elem.innerHTML = "TEXT";

          Danke für deine Hilfe.
          Aber ich bekomme noch die Fehlermeldung: Objektvariable nicht gesetzt 'elem'. Kannst du mir noch sagen, wie ich der String-Variable eine ID verpasse?

          MfG, WeBO

          1. Yerf!

            Aber ich bekomme noch die Fehlermeldung: Objektvariable nicht gesetzt 'elem'. Kannst du mir noch sagen, wie ich der String-Variable eine ID verpasse?

            Ehm... ich glaube da liegt noch ein Missverständnis vor. Du brauchst noch ein HTML-Element, das sich um den entsprechenden Block befinden muss. Dieses bekommt dann die ID.

            Also vor dem Block mit dem document.write ins HTML ein <div id="dieID"></div> einfügen und dann danach statt document.write auf das innerHTML des DIV zugreifen. (Falls um die Tabelle eh schon ein Element vorhanden ist kann man auch diesem die ID direkt geben).

            Gruß,

            Harlequin

            --
            <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
            1. Also vor dem Block mit dem document.write ins HTML ein <div id="dieID"></div> einfügen und dann danach statt document.write auf das innerHTML des DIV zugreifen. (Falls um die Tabelle eh schon ein Element vorhanden ist kann man auch diesem die ID direkt geben).

              Ah, danke. Jetz geht bei mir ein Licht auf.
              Das hört sich wirklich gut an. Ich werde jetzt gleich Feierabend machen und melde mich morgen nochmal bei dir, ob ich es hinbekommen habe.

              Also vielen Dank, nen schönen Abend noch.
              MfG, WeBO

              1. Also vor dem Block mit dem document.write ins HTML ein <div id="dieID"></div> einfügen und dann danach statt document.write auf das innerHTML des DIV zugreifen. (Falls um die Tabelle eh schon ein Element vorhanden ist kann man auch diesem die ID direkt geben).

                Ich bekomms leider nicht hin, kannst du mir das bitte mal direkt an meinem Quelltext veranschaulichen wie du das div einbaust und wie du darauf zugreifst?

                  
                for i=1 to 100  
                  
                 document.write "<TR bgcolor =""FFCC00""><TD width =""13%"" align = ""center""><p><span id=a"&(i)&"></span></p></TD>"  
                 document.write "<TD width =""13%"" align = ""center""><p><span id=b"&(i)&"></span></p></TD>"  
                 document.write "<TD width =""13%"" align = ""center""><p><span id=c"&(i)&"></span></p></TD>"  
                 document.write "<TD width =""13%"" align = ""center""><p><span id=d"&(i)&"></span></p></TD>"  
                 document.write "<TD width =""13%"" align = ""center""><p><span id=e"&(i)&"></span></p></TD>"  
                 document.write "<TD width =""13%"" align = ""center""><p><span id=f"&(i)&"></span></p></TD>"  
                 document.write "<TD width =""13%"" align = ""center""><p><span id=g"&(i)&"></span></p></TD>"  
                 document.write "<TD width =""9%"" align = ""center""><p><span id=h"&(i)&"></span></p></TD></TR>"  
                  
                next  
                document.write "</TABLE>"  
                
                
                1. Yerf!

                  Ich bekomms leider nicht hin, kannst du mir das bitte mal direkt an meinem Quelltext veranschaulichen wie du das div einbaust und wie du darauf zugreifst?

                  Ich glaub ich habs dir auch n bischen falsch beschrieben... Deine document.write liegen ja in einer Funktion und haben deshalb nichts mit der Position der Tabelle zu tun.

                  Wenn du dir deinen HTML-Quelltext unabhängig von irgendwelchen Scripten anschaust, dann musst du das div genau an der Stelle einbauen, wo später die Tabelle stehen soll.

                  Gruß,

                  Harlequin

                  --
                  <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->