Wenn das HTMLLoader-Objekt das
complete
-Ereignis auslöst, können Sie auf alle Objekte im HTML-DOM (Dokumentobjektmodell) der Seite zugreifen. Zu den zugreifbaren Objekten gehören Anzeigeelemente (z. B. das
div
- und
p
-Objekt in der Seite) sowie JavaScript-Variablen und -Funktionen. Das
complete
-Ereignis entspricht dem
load
-Ereignis der JavaScript-Seite. Vor dem Auslösen des
complete
-Ereignisses wurden DOM-Elemente, Variablen und Funktionen möglicherweise nicht analysiert oder erstellt. Warten Sie nach Möglichkeit das
complete
-Ereignis ab, bevor Sie auf das HTML-DOM zugreifen.
Sehen Sie sich beispielsweise folgende HTML-Seite an:
<html>
<script>
foo = 333;
function test() {
return "OK.";
}
</script>
<body>
<p id="p1">Hi.</p>
</body>
</html>
Diese einfache HTML-Seite definiert eine JavaScript-Variable namens
foo
und eine JavaScript-Funktion namens
test()
. Bei beiden handelt es sich um Eigenschaften des globalen
window
-Objekts der Seite. Darüber hinaus umfasst das
window.document
-Objekt ein benanntes P-Element (mit der ID
p1
), auf das Sie mit der
getElementById()
-Methode zugreifen können. Nachdem die Seite geladen wurde (d. h., wenn das HTMLLoader-Objekt das
complete
-Ereignis auslöst), können Sie mit ActionScript auf jedes dieser Objekte zugreifen. Siehe dazu den folgenden ActionScript-Code:
var html:HTMLLoader = new HTMLLoader();
html.width = 300;
html.height = 300;
html.addEventListener(Event.COMPLETE, completeHandler);
var xhtml:XML =
<html>
<script>
foo = 333;
function test() {
return "OK.";
}
</script>
<body>
<p id="p1">Hi.</p>
</body>
</html>;
html.loadString(xhtml.toString());
function completeHandler(e:Event):void {
trace(html.window.foo); // 333
trace(html.window.document.getElementById("p1").innerHTML); // Hi.
trace(html.window.test()); // OK.
}
Verwenden Sie zum Zugreifen auf den Inhalt eines HTML-Elements die
innerHTML
-Eigenschaft. Der vorhergehende Code verwendet z. B.
html.window.document.getElementById("p1").innerHTML
zum Abrufen des Inhalts eines HTML-Elements namens
p1
.
Sie können Eigenschaften der HTML-Seite auch mit ActionScript festlegen. Das folgende Beispiel legt den Inhalt des
p1
-Elements und den Wert der
foo
-JavaScript-Variablen auf der Seite mit einem Verweis fest, der das HTMLLoader-Objekt enthält:
html.window.document.getElementById("p1").innerHTML = "Goodbye";
html.window.foo = 66;