bjoern sippel: Tabellengenerierung zur Laufzeit im Scriptbereich

Hallo zusammen !!

Ich wende mich hier an die Community mit der Frage, ob es mittels
JS möglich ist, eine sichtbare Tabelle abzubilden.
Durch das Anklicken eines Links soll ein Fenster [window.open()]
gestartet werden. Der Inhalt (beliebige Datensätze, stammen aus
einem Array (Perl-Coding)) soll durch eine Tabelle strukturiert
dargestellt werden.
Die komplette HTML-Datei incl. Scriptbereich wird dynamisch erzeugt.

Bisher hat jedoch nur der Aufruf einer bestehenden HTML-Datei
funktioniert. Sprich, die HTML-Datei muss innerhalb des Perlscripts
erst kreiert werden.

Meine Versuche habe ich mit folgendem Coding durchgeführt:

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

<script language=JavaScript>
function hdd1()
{
fenster2=window.open("","Titel", 'width=350,height=200,scrollbars=yes');
fenster2.focus();
fenster2.document.open();
fenster2.document.write("Datensatz <pre> USB IDE 123 ...");
fenster2.document.close();
}
</script>
<A href=javascript:hdd1()>Registry-Key der aktuellen Speichermedien</A>

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

was sollte das Ziel sein ?

...write("<table><tr><td> USB.........</table>");

-->>läßt sich zwar schreiben, hat jedoh keine Auswirkung

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

Meine Frage lautet, ob innerhalb der write-Methode
auch Tabellentags (Anzeige der Tabelle) funktionieren.
Normale Texteinträge als auch die
Formatierung mit <pre> funktionieren. Auch die Verwendung
von Tabellentags funktioniert im Sinne der Strukturierung,
allerdings ist die Tabelle nicht sichtbar.

Das Durchforsten der Beiträge hat scheinbar kein vergleichbares
Problem ergeben.
Man könnte natürlich auch mit Formularfeldern oder vielen Frames
eventuell diesen Effekt erzielen .. :-;

Oder ist dieser Ansatz untauglich ?

  1. Hallo,

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

    was sollte das Ziel sein ?

    ...write("<table><tr><td> USB.........</table>");
    -->>läßt sich zwar schreiben, hat jedoh keine Auswirkung

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

    Formatierung mit <pre> funktionieren. Auch die Verwendung
    von Tabellentags funktioniert im Sinne der Strukturierung,
    allerdings ist die Tabelle nicht sichtbar.

    Ähm, wie soll sie sichtbar sein, ohne Rahmen?
    document.write("<table border='1'><tr><td> USB.........</table>");

    Oder ist dieser Ansatz untauglich?

    Wenn Du schon serverseitig mit Perl arbeitest, warum dann nicht mit einem Link mit Target _blank und/oder window.open ein Perl-Script aufrufen, welches die HTML-Ressource mit der Tabelle erzeugt? JavaScript kann nicht vorausgesetzt werden.

    viele Grüße

    Axel

    1. Hallo Axel,

      vielen Dank für den Hinweis. -> Funktioniert!

      Ich bin davon ausgegangen, dass ohne explizite Border-Anweisung
      die Rahmen immer in einer Standargrösse angezeigt werden

      Wenn Du schon serverseitig mit Perl arbeitest, warum dann nicht mit einem Link mit Target _blank und/oder window.open ein Perl-Script aufrufen, welches die HTML-Ressource mit der Tabelle erzeugt? JavaScript kann nicht vorausgesetzt werden.

      viele Grüße

      Axel

      -> Zu deinen Anmerkungen:
      Meine (JS)-Kenntnisse sind zu gering, um Dir komplett folgen zu
      können :-(

      Kannst Du kurz deinen Gedankengang [Target blank] und
      Aufruf eines Perlscripts per window.open skizieren ?
      Kann ein Perlaufruf in ein window.open gesetzt werden ?

      Die vollständigen Daten sollen nicht immer nachträglich
      gezogen werden.
      Das Tool dmdiag -Datenquelle- (Microsoft) blockiert erstmal all io-Kanäle.
      Ergibt beim User dann den bekannten Sanduhr-Effekt :-)

      Kurz die Situation:
      Codiert werden technische Grundbausteine für ein auto-
      matisiertes System- und Festplatten übergreifendes
      Content-Management (Auswertung auf Dateiebene) System unter W2K ..

      Die Bedienung, Auswertung, Abfragen der anfallenden Daten soll
      mittels HTML-Oberfläche erfolgen. Im Moment erfolgt
      Scripausführung noch manuell, Webserver-Installation folgt.

      -->> Die Verwendung von Javascript soll etwas davon entlasten,
      alles in Perl zu kodieren (speziell Auswertungen, Hilfefenster
      usw.), da Perl nicht für alles optimal ist (z.B. Aufruf eines
      separaten Browserfensters für Hilfefunktion, oder Verweis in
      die Registry)

      Viele Grüsse,

      Björn

      1. Hallo,

        Kannst Du kurz deinen Gedankengang [Target blank] und
        Aufruf eines Perlscripts per window.open skizieren ?

        Der Link

        <A href="/cgi-bin/perlscript.pl" target="_blank" onclick="hdd1();return false" >Registry-Key der aktuellen Speichermedien</A>

        ruft bei inaktivem JavaScript die href-Ressource in einem neuen Fenster auf. Ist JavaScript aktiv, wird die Funktion hdd1() aufgerufen und mit return false wird der Vorgang (klick) beendet, so dass die href-Ressource nicht angefordert wird.

        Kann ein Perlaufruf in ein window.open gesetzt werden ?

        Der Methode open kannst Du eine URI als ersten Parameter mitgeben. Diese wird dann vom neuen Fenster angefordert.

        function hdd1() {
        ...
         fenster2=window.open("/cgi-bin/perlscript.pl","Titel", 'width=350,height=200,scrollbars=yes');
        ...
        }

        -->> Die Verwendung von Javascript soll etwas davon entlasten,
        alles in Perl zu kodieren (speziell Auswertungen, Hilfefenster
        usw.), da Perl nicht für alles optimal ist (z.B. Aufruf eines
        separaten Browserfensters für Hilfefunktion, oder Verweis in
        die Registry)

        Der _Aufruf_ des Fensters _muss_ clientseitig (A[href] mit target oder JavaScript) erfolgen. Aber der _Inhalt_ der Ressource, die das Fenster anfordert, kann serverseitig erzeugt werden. JavaScript ist, wie gesagt, nicht sicher vorauszusetzen und selbst wenn, ist seine Funktion sehr vom jeweiligen Browser und/oder System abhängig.

        viele Grüße

        Axel