Nadat het HTMLLoader-object de gebeurtenis
complete
heeft verzonden, hebt u toegang tot alle objecten in het HTML DOM (Document Object Model) voor de pagina. Toegankelijke objecten zijn onder andere weergave-elementen (zoals de objecten
div
en
p
in de pagina), evenals JavaScript-variabelen en -functies. De gebeurtenis
complete
komt overeen met de JavaScript-gebeurtenis
load
van de pagina. Vóór
complete
wordt verzonden, mogen variabelen, functies en DOM-elementen niet zijn geparseerd of gecreëerd. Indien mogelijk wacht u op de gebeurtenis
complete
vóór u het HTML DOM benadert.
Bekijken we als voorbeeld de volgende HTML-pagina:
<html>
<script>
foo = 333;
function test() {
return "OK.";
}
</script>
<body>
<p id="p1">Hi.</p>
</body>
</html>
Deze eenvoudige HTML-pagina definieert een JavaScript-variabele met de naam
foo
en een JavaScript-functie met de naam
test()
. Beide zijn eigenschappen van het algemene object
window
van de pagina. Bovendien bevat het object
window.document
een element met de naam P (met de id
p1
), dat u kunt oproepen met de methode
getElementById()
. Nadat de pagina is geladen (wanneer het HTMLLoader-object de gebeurtenis
complete
verzendt), kunt u al deze objecten benaderen vanuit ActionScript, zoals wordt geïllustreerd met de volgende 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.
}
Als u de inhoud van een HTML-element wilt oproepen, gebruikt u de eigenschap
innerHTML
. De vorige code gebruikt bijvoorbeeld
html.window.document.getElementById("p1").innerHTML
om de inhoud van het HTML-element
p1
op te halen.
U kunt ook eigenschappen voor de HTML-pagina instellen vanuit ActionScript. Het volgende voorbeeld stelt de inhoud van het element
p1
en de waarde van de JavaScript-variabele
foo
op de pagina in met behulp van een verwijzing naar het bevattende HTMLLoader-object:
html.window.document.getElementById("p1").innerHTML = "Goodbye";
html.window.foo = 66;