När HTMLLoader-objektet skickar
complete
-händelsen kan du få åtkomst till alla objekt i HTML DOM (Document Object Model) för sidan. De tillgängliga objekten omfattar visningselement (t.ex.
div
- och
p
-objekt på sidan) samt JavaScript-variabler och -funktioner.
complete
-händelsen motsvarar JavaScript-sidans
load
-händelse. DOM-element, variabler och funktioner har kanske inte tolkats eller skapats innan
complete
har skickats. Om det är möjligt kan du vänta på
complete
-händelsen innan du får tillgång till HTML DOM.
Ta till exempel följande HTML-sida:
<html>
<script>
foo = 333;
function test() {
return "OK.";
}
</script>
<body>
<p id="p1">Hi.</p>
</body>
</html>
På den här enkla HTML-sidan definieras en JavaScript-variabel som heter
foo
och en JavaScript-funktion som heter
test()
. De här båda är egenskaper för sidans globala
window
-objekt.
window.document
-objektet innehåller också ett namngivet P-element (med ID
p1
) som du kan få tillgång till med hjälp av metoden
getElementById()
. När sidan har lästs in (när HTMLLoader-objektet skickar
complete
-händelsen) får du tillgång till vart och ett av de här objekten från ActionScript. Se följande ActionScript-kod:
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.
}
Om du vill få tillgång till innehållet i ett HTML-element använder du egenskapen
innerHTML
. Den föregående koden använder till exempel
html.window.document.getElementById("p1").innerHTML
för att hämta innehållet i HTML-elementet med namnet
p1
.
Du kan också ange egenskaper för HTML-sidan från ActionScript. Följande exempel anger till exempel innehållet för
p1
-elementet och värdet på JavaScript-variabeln
foo
på sidan med hjälp av en referens till det HTMLLoader-objekt som ingår:
html.window.document.getElementById("p1").innerHTML = "Goodbye";
html.window.foo = 66;