Una vez que el objeto HTMLLoader distribuye el evento
complete
, se puede acceder a todos los objetos en DOM HTML (modelo de objeto de documentos) para la página. Los objetos accesibles incluyen elementos de visualización (como objetos
div
y
p
en la página) así como funciones y variables de JavaScript. El evento
complete
corresponde al evento de página JavaScript
load
. Es posible que antes de distribuir el evento
complete
, los elementos DOM, variables, y funciones no se hayan analizado o creado. Si es posible, espere al evento
complete
antes de acceder al DOM HTML.
Por ejemplo, considere la siguiente página HTML:
<html>
<script>
foo = 333;
function test() {
return "OK.";
}
</script>
<body>
<p id="p1">Hi.</p>
</body>
</html>
Esta simple página HTML define una variable JavaScript denominada
foo
y una función JavaScript denominada
test()
. Ambas son propiedades del objeto global
window
de la página. Asimismo, el objeto
window.document
incluye un elemento P (con el ID
p1
), que se puede acceder utilizando el método
getElementById()
. Una vez que se carga la página (cuando el objeto HTMLLoader distribuye el evento
complete
), se puede acceder a cada uno de estos objetos desde ActionScript, como se muestra en el siguiente código 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.
}
Para acceder al contenido de un elemento HTML, utilice la propiedad
innerHTML
. Por ejemplo, el código anterior utiliza
html.window.document.getElementById("p1").innerHTML
para obtener el contenido del elemento HTML denominado
p1
.
También se pueden definir propiedades de la página HTML desde ActionScript. Por ejemplo, en el siguiente ejemplo se define el contenido del elemento
p1
y el valor de la variable JavaScript
foo
en la página utilizando una referencia al objeto HTMLLoader que lo contiene:
html.window.document.getElementById("p1").innerHTML = "Goodbye";
html.window.foo = 66;