splinter03: Quelltext einer Seite auslesen

Hallo!

Ich arbeite an einem Projekt und komme an einer Stelle nicht weiter.
Ich muss den Quellcode einer Seite über JS auslesen.
Hab es schon mit
document.getElementsByTagName( 'html' )[0].innerHTML
versucht. Das geht soweit ganz gut. Doch ein kleiner Hacken bleibt :) Formulareingaben, die gemacht werden, nachdem die Seite geladen wurde, sind nicht enthalten. Wieso?

Kann mit jemand helfen?

Gruß,

Micha

  1. Hallo splinter03,

    Wieso?

    Weil sie nicht im Quellcode stehen.

    Kann mit jemand helfen?

    Lese die Formularfelder aus und speichere den Inhalt.

    Mit freundlichem Gruß
    Micha

    --
    simple JavaScript Spiele: Snake, MineSweeper, Sudoku oder Tetris
  2. versucht. Das geht soweit ganz gut. Doch ein kleiner Hacken bleibt :) Formulareingaben, die gemacht werden, nachdem die Seite geladen wurde, sind nicht enthalten. Wieso?

    Weil sie nicht im Quelltext stehen.

    Struppi.

    1. »» versucht. Das geht soweit ganz gut. Doch ein kleiner Hacken bleibt :) Formulareingaben, die gemacht werden, nachdem die Seite geladen wurde, sind nicht enthalten. Wieso?

      Weil sie nicht im Quelltext stehen.

      Struppi.

      Gibt es denn eine Möglichkeit an die Formulareingaben heranzukommen. Leider habe ich auf den Code keinen Einfluss, also den Elementen ID's geben oder sowas in der Art geht nicht.

      Vielen Dank!

      Micha

      1. Das geht schon, jedoch nur durch entsprechendes Parsen, d.h. Du musst den Code mit einer Auswahl geeigneter Regulären Ausdrücke aufsplitten und nach Hinzufügen der gewünschten Angaben wieder zusammenfügen.

        Alles in allem ist es dabei vermutlich leichter, den HTML-Code sozusagen "von Hand" zu parsen. Hier ein kleiner Ansatz dazu:

        var parsenodes = {  
            'a': [ 'href', 'target' ],  
            'table' : [ 'align', 'cellspacing', 'cellpadding' ],  
            'td' : [ 'align', 'valign' ],  
            '*': [ 'id', 'title', 'class', 'style', 'height', 'width' ]  
        }  
        function parseattr(node) {  
            var attr = '';  
            for (var k in node) {  
                if (k in parsenodes[node.nodeName.toLowerCase()] ||  
                    k in parsenodes['*']) {  
                    attr += ' '+k+'="'+node.k+'"';  
                }  
            }  
        }  
        function parse(node) {  
            var childnodes = '';  
            for (var c=0; c < node.childNodes.length; c++) {  
                    if (node.childNodes[c].nodeType == 1) { textonly = false; }  
                    childnodes += parse(node.childNodes[c]);  
                }  
            }  
            return '<'+node.nodeName.toLowerCase()+parseattr(node)+'>'+childnodes+  
                   '<\/'+node.nodeName.toLowerCase()+'>';  
        }
        

        Diese Funktion dient nur als Anschauungsobjekt und sollte nicht eingesetzt werden, ohne zumindest den Versuch unternommen zu haben, sie zu verstehen.

        Gruß, LX

        --
        RFC 1925, Satz 8: Es ist komplizierter als man denkt.
        1. Danke, ich glaub damit kann ich erstmal was anfangen!

          Gruß!

      2. Hi,

        Gibt es denn eine Möglichkeit an die Formulareingaben heranzukommen.

        über die document.forms-Collection und deren elements-Collections.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        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.