关于 HTMLLoader 类

Adobe AIR 的 HTMLLoader 类定义可在 AIR 应用程序中显示 HTML 内容的显示对象。基于 SWF 的应用程序可以向现有窗口中添加一个 HTMLLoader 控件,也可以使用HTMLLoader.createRootWindow() 创建 HTML 窗口,该窗口会自动包含 HTMLLoader 对象。可以通过 JavaScript window.htmlLoader 属性从加载的 HTML 页内部访问 HTMLLoader 对象。

从 URL 加载 HTML 内容

以下代码将 URL 加载到 HTMLLoader 对象,并将该对象设置为 Sprite 对象的子对象:

var container:Sprite;
var html:HTMLLoader = new HTMLLoader;
html.width = 400;
html.height = 600;
var urlReq:URLRequest = new URLRequest("http://www.adobe.com/");
html.load(urlReq);
container.addChild(html);

HTMLLoader 对象的 width 和 height 属性默认情况下均设置为 0。向舞台添加 HTMLLoader 对象时需要设置这些尺寸。HTMLLoader 在加载页面时会调度多个事件。可以使用这些事件来确定何时与加载的页面进行交互是安全的。处理与 HTML 相关的事件中对这些事件进行了介绍。

注: 在 Flex 框架中,只有 UIComponent 类的扩展类才可以作为 Flex 容器组件的子组件进行添加。因此,无法将 HTMLLoader 作为 Flex 容器组件的子组件直接进行添加;但是可以通过以下方式添加:使用 Flex mx:HTML 控件;构建一个自定义类对 UIComponent 进行扩展,并将 HTMLLoader 作为 UIComponent 的子组件包含在其中;将 HTMLLoader 作为 UIComponent 的子组件进行添加,然后将 UIComponent 添加到 Flex 容器中。有关详细信息,请参阅使用 Flex AIR 组件。

您也可以使用 TextField 类来呈现 HTML 文本,但该类的功能受到限制。Adobe® Flash® Player 的 TextField 类支持 HTML 标记的子集,但是由于大小限制,该类的功能受到限制。(Flash Player 不支持 Adobe AIR 中包含的 HTMLLoader 类。)

从字符串加载 HTML 内容

HTMLLoader 对象的 loadString() 方法可以将 HTML 内容字符串加载到 HTMLLoader 对象中:

var html:HTMLLoader = new HTMLLoader();
var htmlStr:String = "<html><body>Hello <b>world</b>.</body></html>";
html.loadString(htmlStr);

通过 loadString() 方法加载的内容将会放在应用程序安全沙箱中,能够完全访问 AIR API。

在 AIR 应用程序中使用 HTML 的重要安全规则

随 AIR 应用程序一起安装的文件能够访问 AIR API。出于安全方面的考虑,来自其它源的内容不能访问 AIR API。例如,此限制将阻止远程域(例如 http://example.com)中的内容读取用户桌面目录中的内容(也可能是更严重的情况)。

由于存在可通过调用 eval() 函数(及相关 API)来利用的安全漏洞,因此,默认情况下限制使用这些方法。但是,某些 Ajax 框架会调用 eval() 函数和相关 API。

为确保结构内容在 AIR 应用程序中能够正常工作,必须考虑对来自不同源的内容制订相应的安全限制规则。来自不同源的内容按不同的安全等级放置在沙箱(请参阅沙箱)中。默认情况下,随应用程序一起安装的内容安装在称为应用程序 的沙箱中,这将授予该内容访问 AIR API 的权限。应用程序沙箱通常是最安全的沙箱,设计了一些限制,可阻止不受信任代码的执行。

运行时允许将随应用程序一起安装的内容加载到应用程序沙箱之外的沙箱中。非应用程序沙箱中的内容在类似于典型 Web 浏览器的安全环境中运行。例如,非应用程序沙箱中的代码可以使用eval() 和相关方法(但不允许该代码访问 AIR API)。运行时包含有相关方法,可以让不同沙箱中的内容安全地进行通信(例如,不将 AIR API 公开给非应用程序内容)。有关详细信息,请参阅跨脚本访问不同安全沙箱中的内容。

如果出于安全方面的考虑,限制在沙箱中使用所调用的代码,则运行时将发出 JavaScript 错误:“Adobe AIR runtime security violation for JavaScript code in the application security sandbox”(应用程序安全沙箱中存在针对 JavaScript 代码的 Adobe AIR 运行时安全侵犯)。

为了避免此错误,请按照下一部分避免与安全相关的 JavaScript 错误中介绍的代码编写方法进行操作。

有关详细信息,请参阅 HTML 安全性。

原文地址(http://help.adobe.com/zh_CN/AIR/1.1/devappsflex/WS5b3ccc516d4fbf351e63e3d118666ade46-7ed8.html)

HTML 和 JavaScript 编程相关推荐

  1. 《JavaScript编程实战》

    <JavaScript编程实战> 基本信息 原书名:JavaScript programming: pushing the limits 作者: (美)Jon Raasch 译者: 吴海星 ...

  2. (转)面向对象的 JavaScript 编程:dojo.declare 详解

    >>>>>http://www.ibm.com/developerworks/cn/<<<<< JavaScript 早在发明初期时,仅用来 ...

  3. JavaScript 编程精解 中文第三版 零、前言

    零.前言 原文:Introduction 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了<JavaScript 编程精解(第 2 版)> We think ...

  4. 面向对象的 JavaScript 编程及其 Scope 处理

    为什么80%的码农都做不了架构师?>>>    在面向对象的 JavaScript 编程中,我们常常会将一些数据结构和操作封装成对象以达到继承和重用的目的.然而层层封装和继承再加上 ...

  5. 《JavaScript设计与开发新思维》——1.7 JavaScript编程目标

    本节书摘来自异步社区<JavaScript设计与开发新思维>一书中的第1章,第1.7节,作者:[美]Larry Ullman著,更多章节内容可以访问云栖社区"异步社区" ...

  6. JavaScript 编程精解 中文第三版 十一、异步编程

    十一.异步编程 原文:Asynchronous Programming 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 孰能浊以澄?静之徐清: 孰能安以久?动之徐生. 老子,&l ...

  7. [Javascript]编程风格

    作者: 阮一峰 日期: 2012年4月27日 Douglas Crockford是Javascript权威,Json格式就是他的发明. 去年11月他有一个演讲(Youtube),谈到了好的Javasc ...

  8. 面向对象的JavaScript编程

    面向对象的JavaScript编程     Javascript对于做过Web程序的人不应该是陌生,初期是用来做一些简单的FORM验证,基本上是在玩弄一些技巧性的东西.IE 4.0引入了DHTML,同 ...

  9. JavaScript编程知识

    JavaScript编程知识 1.从阵列中删除重复项 数组:这是一些方便的方法,可用于从数组中删除重复项. 1.使用lodash let array = [2, 1, 2, 5, 6, 7, 8, 9 ...

  10. SAP Cloud for Customer里的HTML Mashup的JavaScript编程功能

    SAP Cloud for Customer的HTML Mashup,可以在HTML编辑器里进行简单的JavaScript编程,并在其中使用C4C标准页面里Business object字段的值. 比 ...

最新文章

  1. 如何写网站的robots.txt和meta name robots的配置
  2. Devexpress之dxErrorProvider
  3. 200723学习日报
  4. 编写高效的PyTorch代码技巧(上)
  5. linux 添加重定向域名,Linux系统中Nginx的安装并进行域名认证和重定向
  6. TiDB数据库备份恢复与数据迁移
  7. html5 cs js字母验证码,JavaScript生成图形验证码
  8. 关于产品与数据该如何结合的一点想法(一)
  9. 一张图看懂python编程
  10. C++基础部分_C++文件操作_二进制文件的写操作---C++语言工作笔记078
  11. zTree——删除所有节点
  12. 在Linux中使用7zip/7zz
  13. python imshow彩色_matplotlib实现显示伪彩色图像及色度条
  14. 启动rabbitmq
  15. matlab 变分贝叶斯,变分法和变分贝叶斯推断
  16. js保留两位小数的方法
  17. Android 10.0相关权限的变更(使用WiFi Direct必须打开定位)
  18. 硬件设计【1】——光耦的基本原理及TLP521使用
  19. NIST cybersecurity framework的五个核心功能
  20. pytorch拟合sin函数

热门文章

  1. VMware vSphere “I moved it” or “I copied it” – What’s the difference?
  2. 问君能有几多愁,恰似不懂Linux SQL如何调优——聊聊SQL Server on Linux最佳实践
  3. XXE漏洞 解决方案(JAVA版本)
  4. 转载一篇杨澜的演讲稿——关于孩子的想象力创造力
  5. 苹果 AirPods 固件更新,这个新功能上线!
  6. 终于要来了!苹果明年将推出11英寸版mini-LED屏iPad Pro
  7. 疑似小米平板5通过3C认证:搭载8720mah双电芯方案
  8. 前魅族副总裁李楠上手魅族17:颜值提升了
  9. 蘑菇街裁员14%为实现盈亏平衡?回应:系正常调整
  10. 别人家的公司!顺丰将向员工提供3亿贷款,无利息无抵押无担保