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
code
Der auszuführende Code.
Rückgabewert
Was 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
script
Das auszuführende Skript.
Rückgabewert
Was 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ückgabewert
Der 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ückgabewert
Der Titel des Dokuments.
String getUrl()
Liefert die URL des Dokuments.
Rückgabewert
Die 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
url
Die URL deren Basis-Teil ermittelt werden soll.
Rückgabewert
Der 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
url
Die URL deren Host-Teil ermittelt werden soll.
Rückgabewert
Der Host-Teil der URL oder null, falls das Protokoll weder http noch https ist.
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 54.1.11).
Parameter
url
Die 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.