Die Klasse DocumentNode

Web Das Wurzel-Document einer Webseite wird nicht durch einen 'Fenster' Knoten, sondern den speziellen Knoten 'Webseite' repräsentiert. Verschachtelte Document Knoten in Frames entsprechen 'Komponenten' Knoten.

Die Klasse DocumentNode ist von Node abgeleitet und befindet sich ebenfalls im Package de.qfs.apps.qftest.client.web.dom. Zusätzlich zu den in der Node Klasse definierten Methoden, die oben beschrieben wurden, bietet DocumentNode folgendes an:

 
 
Object callJS(String code)
Führt JavaScript Code im Context dieses Dokuments innerhalb einer Funktion aus. Dies funktioniert häufig auch dann, wenn ein Aufruf von eval() durch eine Sicherheitsrichtlinie für den Inhalt (CSP) unterbunden wird.
Parameter
codeDer auszuführende Code.
RückgabewertWas immer der Code explizit mit return zurückliefert, konvertiert in einen passenden Objekttyp. Sogar die Rückgabe von DOM-Knoten, Frames oder Dokumenten funktioniert.
 
Object evalJS(String script)
Führt JavaScript Code mit einem window.eval()-Aufruf im Kontext dieses Dokuments aus. In den meisten Fällen ist die Methode callJS zu bevorzugen, da der Aufruf von eval() je nach Dokument durch eine Sicherheitsrichtlinie für den Inhalt (CSP) unterbunden sein kann.
Parameter
scriptDas auszuführende Skript.
RückgabewertWas immer das Skript zurückliefert, konvertiert in einen passenden Objekttyp. Sogar die Rückgabe von DOM-Knoten, Frames oder Dokumenten funktioniert.
 
FrameNode[] getFrames()
Liefert die Kind-Frames des Dokuments.
Rückgabewert Die Kind-Frames des Dokuments, ein leeres Array falls das Dokument keine Frames hat.
 
DomNode getRootElement()
Liefert den <HTML> Wurzelknoten des Dokuments.
RückgabewertDer Wurzelknoten des Dokuments.
 
String getSourcecode()
Liefert den HTML-Quelltext des Dokuments im aktuellen Zustand, also nicht notwendigerweise das, was beim Öffnen des Dokuments geladen wurde, sondern inklusive aller Änderungen an Attributen oder der Struktur des DOM, die seither vorgenommen wurden, z.B. via JavaScript.
Rückgabewert Der aktuelle HTML-Quelltext des Dokuments.
 
String getTitle()
Liefert den Titel des Dokuments aus dem <TITLE> Knoten im <HEAD> Knoten des Wurzelknotens.
RückgabewertDer Titel des Dokuments.
 
String getUrl()
Liefert die URL des Dokuments.
RückgabewertDie URL des Dokuments.
 
boolean hasParent()
Um zu prüfen, ob ein Dokument sich auf oberster Ebene befindet, sollte diese Methode verwendet werden, anstatt das Ergebnis von getParent() auf null zu testen. Der Grund dafür liegt darin, dass das Laden von Kind-Dokumenten vor dem Laden des Parent-Dokument abgeschlossen sein kann. In der Zwischenzeit ist bereits bekannt, dass das Kind-Dokument einen Parent haben wird, obwohl dieser noch nicht zur Verfügung steht.
Rückgabewert True falls das Dokument einen Parent besitzt, false wenn es sich um ein Dokument auf oberster Ebene handelt.
 
 

Neben den obigen Instanz-Methoden bietet die DocumentNode Klasse einige statische Methoden, um URL einfacher manipulieren zu können.

 
 
static String getUrlBase(String url)
Liefert den Basis-Teil einer URL inklusive Host und Verzeichnis, aber ohne eventuelle Parameter, abgetrennt durch ein '?' und ohne eine eventuelle Tomcat Session ID.
Parameter
urlDie URL deren Basis-Teil ermittelt werden soll.
RückgabewertDer Basis-Teil der URL.
 
static String getUrlHost(String url)
Liefert den Host-Teil einer URL, also den Teil zwischen "http(s)://" und dem nächsten '/'.
Parameter
urlDie URL deren Host-Teil ermittelt werden soll.
Rückgabewert Der Host-Teil der URL oder null, falls das Protokoll weder http noch https ist.
 
static ExtraFeatureSet getUrlParameters(String url)
Liefert die Parameter einer URL, sowohl die durch ein '?' abgetrennten, als auch eine mögliche Tomcat Session ID, in Form eines ExtraFeatureSet wie es für einen ExtraFeatureResolver benötigt wird (vgl. Abschnitt 53.1.11).
Parameter
urlDie URL deren Parameter ermittelt werden sollen.
Rückgabewert Die Parameter der URL.
 
static String normalizeUrl(String url)
Normalisiert eine URL. Dabei werden '\' durch '/' ersetzt, "file:/(/(/))" durch "file:///", Windows Laufwerk-Buchstaben groß geschrieben und %.. Sequenzen dekodiert.
Parameter
urlDie zu normalisierende URL.
Rückgabewert Die normalisierte URL.