Åtkomst till HTML DOM och JavaScript-objekt från ActionScriptAdobe AIR 1.0 och senare 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;
|
|