Zugreifen auf HTML-DOM- und JavaScript-Objekte mit ActionScript

Adobe AIR 1.0 und höher

Wenn das HTMLLoader-Objekt das complete -Ereignis auslöst, können Sie auf alle Objekte im HTML-DOM (Dokumentobjektmodell) der Seite zugreifen. Zu den zugreifbaren Objekten gehören Anzeigeelemente (z. B. das div - und p -Objekt in der Seite) sowie JavaScript-Variablen und -Funktionen. Das complete -Ereignis entspricht dem load -Ereignis der JavaScript-Seite. Vor dem Auslösen des complete -Ereignisses wurden DOM-Elemente, Variablen und Funktionen möglicherweise nicht analysiert oder erstellt. Warten Sie nach Möglichkeit das complete -Ereignis ab, bevor Sie auf das HTML-DOM zugreifen.

Sehen Sie sich beispielsweise folgende HTML-Seite an:

<html> 
    <script> 
        foo = 333; 
        function test() { 
            return "OK."; 
        } 
    </script> 
    <body> 
        <p id="p1">Hi.</p> 
    </body> 
</html>

Diese einfache HTML-Seite definiert eine JavaScript-Variable namens foo und eine JavaScript-Funktion namens test() . Bei beiden handelt es sich um Eigenschaften des globalen window -Objekts der Seite. Darüber hinaus umfasst das window.document -Objekt ein benanntes P-Element (mit der ID p1 ), auf das Sie mit der getElementById() -Methode zugreifen können. Nachdem die Seite geladen wurde (d. h., wenn das HTMLLoader-Objekt das complete -Ereignis auslöst), können Sie mit ActionScript auf jedes dieser Objekte zugreifen. Siehe dazu den folgenden ActionScript-Code:

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. 
}

Verwenden Sie zum Zugreifen auf den Inhalt eines HTML-Elements die innerHTML -Eigenschaft. Der vorhergehende Code verwendet z. B. html.window.document.getElementById("p1").innerHTML zum Abrufen des Inhalts eines HTML-Elements namens p1 .

Sie können Eigenschaften der HTML-Seite auch mit ActionScript festlegen. Das folgende Beispiel legt den Inhalt des p1 -Elements und den Wert der foo -JavaScript-Variablen auf der Seite mit einem Verweis fest, der das HTMLLoader-Objekt enthält:

html.window.document.getElementById("p1").innerHTML = "Goodbye"; 
html.window.foo = 66;