Dopo che l'oggetto HTMLLoader invia l'evento
complete
, potete accedere a tutti gli oggetti nel modello DOM (Document Object Model) HTML per la pagina. Gli oggetti a cui potete accedere includono gli elementi di visualizzazione (come gli oggetti
div
e
p
della pagina), nonché le variabili e le funzioni JavaScript. L'evento
complete
corrisponde all'evento JavaScript
load
della pagina. Prima che venga inviato l'evento
complete
, è possibile che non siano stati analizzati o creati gli elementi DOM, le variabili e le funzioni. Se possibile, attendere l'evento
complete
prima di accedere al modello DOM HTML.
Ad esempio, esaminate la seguente pagina HTML:
<html>
<script>
foo = 333;
function test() {
return "OK.";
}
</script>
<body>
<p id="p1">Hi.</p>
</body>
</html>
Questa semplice pagina HTML definisce una variabile JavaScript denominata
foo
e una funzione JavaScript denominata
test()
. Entrambe sono proprietà dell'oggetto
window
globale della pagina. Inoltre, l'oggetto
window.document
include un elemento chiamato P (con ID
p1
), a cui potete accedere usando il metodo the
getElementById()
. Dopo che la pagina è stata caricata (quando l'oggetto HTMLLoader invia l'evento
complete
), potete accedere a ognuno di questi oggetti da ActionScript, come mostrato nel seguente codice ActionScript:
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.
}
Per accedere a l contenuto di un elemento HTML, usate la proprietà
innerHTML
. Ad esempio, nel codice precedente si usa
html.window.document.getElementById("p1").innerHTML
per ottenere il contenuto dell'elemento HTML denominato
p1
.
Potete anche impostare le proprietà della pagina HTML da ActionScript. Nel seguente esempio viene impostato il contenuto dell'elemento
p1
e il valore della variabile JavaScript
foo
della pagina usando un riferimento all'oggetto HTMLLoader che li contiene:
html.window.document.getElementById("p1").innerHTML = "Goodbye";
html.window.foo = 66;