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;