Accesso agli oggetti JavaScript e al modello DOM HTML da ActionScript

Adobe AIR 1.0 e versioni successive

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;