Å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; |
|