HTML DOM ve JavaScript nesnelerine ActionScript'ten erişme

Adobe AIR 1.0 ve üstü

HTMLLoader nesnesi complete olayını gönderdikten sonra, sayfaya ilişkin HTML DOM'daki (belge nesnesi modeli) tüm nesnelere erişebilirsiniz. Erişilebilir nesneler görüntü öğelerininin (sayfadaki div ve p nesneleri gibi) yanı sıra JavaScript değişkenleri ve işlevlerini kapsar. complete olayı, JavaScript sayfası load olayına karşılık gelir. complete gönderilmeden önce DOM öğeleri, değişkenleri ve işlevleri ayrıştırılmamış veya oluşturulmamış olabilir. Mümkünse HTML DOM'a erişmeden önce complete olayını bekleyin.

Örneğin, aşağıdaki HTML sayfasına bakın:

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

Bu basit HTML sayfası foo adlı bir JavaScript değişkeni ve test() adlı bir JavaScript işlevi tanımlar. Bunların her ikisi de sayfanın genel window nesnesinin özellikleridir. Ayrıca, window.document nesnesi, getElementById() yöntemini kullanarak erişebileceğiniz, ( p1 kimliğiyle) adlandırılan P öğesini içerir. Sayfa yüklendiğinde (HTMLLoader nesnesi complete olayını gönderdiğinde), bu nesnelerin her birine aşağıdaki ActionScript kodunda gösterildiği şekilde ActionScript'ten erişebilirsiniz:

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

HTML öğesinin içeriğine erişmek için innerHTML özelliğini kullanın. Örneğin, önceki kod p1 adlı HTML öğesinin içeriğini getirmek için html.window.document.getElementById("p1").innerHTML kullanır.

HTML sayfasının özelliklerini ActionScript'ten de ayarlayabilirsiniz. Örneğin, aşağıdaki örnek var olan HTMLLoader nesnesine ilişkin başvuruyu kullanarak p1 öğesinin içeriğini ve sayfadaki foo JavaScript değişkeninin değerini ayarlar:

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