Загрузка дополнительных JS и CSS файлов в HTML документ

Flex cookbook entry: Loading of additional JS and CSS files in the HTML document.

JSInterface позволяет загружать внешние JavaScript и CSS файлы прямо в HTML страницу. Для этого необходимо указать URL файла и функцию обратного вызова, вызываемую по окончанию загрузки.

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
  3. width="20" height="20"
  4. preinitialize="{JSInterface.initialize()}"
  5. creationComplete="{creationCompleteHandler(event)}">
  6. <mx:Script>
  7. <![CDATA[
  8. import aw.external.JSInterface;
  9.  
  10. protected const JAVA_SCRIPT_FILE:String = "jquery-1.2.6.js";
  11. protected const CSS_FILE:String = "main.css";
  12.  
  13. protected function creationCompleteHandler(event:Event):void{
  14. JSInterface.loadJavaScript(JAVA_SCRIPT_FILE, this.javaScriptLoadCompleteHandler);
  15. JSInterface.loadCSS(CSS_FILE, this.CSSLoadCompleteHandler);
  16. }
  17. protected var $:Function;
  18. protected function javaScriptLoadCompleteHandler(event:Object=null):void{
  19. trace("JavaScript loaded!");
  20. $ = JSInterface.window.$;
  21. trace($("FONT")[0].innerHTML);
  22. }
  23. // FireFox will not call onload handler for <LINK/> tag
  24. protected function CSSLoadCompleteHandler(event:Object=null):void{
  25. trace("CSS loaded!");
  26. }
  27. ]]>
  28. </mx:Script>
  29. </mx:Application>

После загрузки JavaScript файла, загруженный код может использовать JavaScript код находящийся в HTML странице и все Flash приложения этой страницы.

Браузер FireFox не обрабатывает событие загрузки CSS - onload и поэтому переданная функция не будет вызвана. Для определения окончания загрузки CSS файла в FireFox можно использовать таймауты и, к примеру, проверять существование специфического стиля.

Загрузить проект.

Посетить официальный сайт JSInterface.

Метки: , , , , , ,

Добавить комментарий

Вы должны авторизоваться для отправки комментария.