Acesso a objetos HTML DOM e JavaScript do ActionScript

Adobe AIR 1.0 e posterior

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;