HTML-Auslesen
Ungili
- javascript
Hollo,
Gibt es eine Möglichkeit den Inhalt eines anderen HTML-Dokumentes in eine Variable zu packen?
Ein Beispiel:
In HTML Nr.1 steht ein Text
Und HTML Nr.2 soll eine Meldung ausgeben, mit dem Inhalt von HTML Nr.1
Danke
Ungili
Hallo Ungili,
Gibt es eine Möglichkeit den Inhalt eines anderen HTML-Dokumentes in eine Variable zu packen?
Ein Beispiel:
In HTML Nr.1 steht ein Text
Und HTML Nr.2 soll eine Meldung ausgeben, mit dem Inhalt von HTML Nr.1
Dateien auslesen (z.B. auf einen Event hin wie Anklicken eines Links oder eines Buttons) geht mit JavaScript nur auf wackeligen Umwegen ueber Java (siehe dazu Feature-Artikel http://aktuell.de.selfhtml.org/artikel/javascript/file-open/.
Ansonsten kann JavaScript nur auf Dateien zugreifen, die aktuell geladen sind. Das kann z.B. in einem Frameset der Fall sein. Du koenntest ein unsichtbares Frameset definieren, in dem Datei 1 in einem Framefenster mit der Groesse 0 angezeigt wird und Datei 2 in einem Framefenster mit der Groesse 100%. Dann kannst du von dort aus auf das Framefenster mit Datei 1 zugreifen, den gesamten Elementbaum auslesen und das Ergebnis in einer Variablen speichern.
Fuer den Zugriff auf den gesamten sichtbaren Inhalt der HTML-Datei kannst du die Eigenschaft innerHTML auf das body-Element der Datei anwenden. Zugreifen kannst du dabei ueber DOM-Syntax (document.getElementsByTagName("body")[0].innerHTML) oder ueber das MS-spezifische all-Objekt (document.all.tags("body")[0].innerHTML).
viele Gruesse
Stefan Muenz
Hallo,
tschuldigung, daß ich mich einfach so einmische...
Du koenntest ein unsichtbares Frameset definieren, in dem Datei 1 in einem Framefenster mit der Groesse 0 angezeigt wird und Datei 2 in einem Framefenster mit der Groesse 100%. Dann kannst du von dort aus auf das Framefenster mit Datei 1 zugreifen, den gesamten Elementbaum auslesen und das Ergebnis in einer Variablen speichern.
sowas ähnliches beschäftigt mich nämlich in letzter Zeit:
wenn ich ganze HTML-Seiten 'vorladen' will, wie man auch Bilder in ein Array vorlädt - wäre das ein guter Weg? (beim Link dann halt den Inhalt dieser Variablen in den aktuellen Frame schreiben)
danke und Gruß, Andreas
Hallo Andreas,
sowas ähnliches beschäftigt mich nämlich in letzter Zeit:
wenn ich ganze HTML-Seiten 'vorladen' will, wie man auch Bilder in ein Array vorlädt - wäre das ein guter Weg? (beim Link dann halt den Inhalt dieser Variablen in den aktuellen Frame schreiben)
Nein, fuer einen guten Weg halte ich es nicht. Mit Frames zu arbeiten, nur um solche Effekte zu erzielen, ist bestenfalls eine Notloesung.
Wenn du Elemente zunaechst nicht anzeigen willst, ist es am besten, du definierst sie mit style="display:none" oder style="visibility:hidden" (je nachdem, ob der Platz fuer die Elemente schon reserviert werden soll oder nicht), und rufst z.B. bei <body onLoad=> eine JavaScript-Funktion auf, die alle unsichtbaren Elemente mit einem Schlag sichtbar macht. Das ist auf jeden Fall sauberer als die Trickserei mit den Frames. Nachteil ist nur, dass Netscape 4.x diese Angaben meines Wissens zumindest nur im Zusammenhang mit positionierten Bereichen akzeptiert.
viele Gruesse
Stefan Muenz
Hallo Stefan,
Mit Frames zu arbeiten, nur um solche Effekte zu erzielen...
Wenn du Elemente zunaechst nicht anzeigen willst, ist es am besten, du definierst sie mit style="display:none" oder style="visibility:hidden"
ja, ich dachte eher daran, dem Besucher Wartezeit zu ersparen, wenn die verlinkte Seite ein bischen groß geraten ist, eigentlich nicht so an Effekte.
Gruß, Andreas