Após o objeto HTMLLoader despachar o evento
complete
, você poderá acessar todos os objetos no HTML DOM (modelo de objeto de documento) da página. Os objetos acessíveis incluem os elementos de exibição (como os objetos
div
e
p
na página), bem como as variáveis e funções JavaScript. O evento
complete
corresponde ao evento
load
da página em JavaScript. Antes que
complete
seja despachado, os elementos DOM, as variáveis e as funções poderão não ter sido analisados nem criados. Se possível, aguarde o evento
complete
antes de acessar o HTML DOM.
Por exemplo, considere a seguinte página HTML:
<html>
<script>
foo = 333;
function test() {
return "OK.";
}
</script>
<body>
<p id="p1">Hi.</p>
</body>
</html>
Essa página HTML simples define uma variável JavaScript chamada
foo
e uma função JavaScript chamada
test()
. As duas propriedades são propriedades do objeto
window
global da página. Além disso, o objeto
window.document
inclui um elemento chamado P (com a ID
p1
), que você pode acessar usando o método
getElementById()
. Depois que a página for carregada (quando o objeto HTMLLoader despachar o evento
complete
), você poderá acessar cada um desses objetos do ActionScript, conforme mostra o seguinte 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 acessar o conteúdo de um elemento HTML, use a propriedade
innerHTML
. Por exemplo, o código anterior usa
html.window.document.getElementById("p1").innerHTML
para obter o conteúdo do elemento HTML chamado
p1
.
Você também pode definir propriedades da página HTML do ActionScript. Por exemplo, o seguinte exemplo define o conteúdo do elemento
p1
e o valor da variável JavaScript
foo
na página, usando uma referência ao objeto HTMLLoader que a contém:
html.window.document.getElementById("p1").innerHTML = "Goodbye";
html.window.foo = 66;