flex中navigateToURL函数的应用


  在包含 Flash Player 容器的应用程序(通常是一个浏览器)中,打开或替换一个窗口。在 Adobe AIR 中,该函数可在默认的系统 Web 浏览器中打开 URL。在默认的系统 Web 浏览器中打开 URL。
  开发人员通常将获取自 FlashVars 等外部来源的 URL 值传递给 navigateToURL() 函数。攻击者可能会尝试操纵这些外部来源,以进行跨站脚本等攻击。因此,开发人员应该验证所有 URL,然后才能将其传递给此函数。
   参数:
   request URLRequest 对象,指定要导航到哪个 URL。 
  对于在 Adobe AIR 中运行的内容,当使用 navigateToURL() 函数时,运行时将使用 POST 方法的 URLRequest(其 method 属性设置为 URLRequestMethod.POST )视为使用 GET 方法。 window 浏览器窗口或 HTML 帧,其中显示 request 参数指示的文档。可以输入某个特定窗口的名称,或使用以下值之一: 
  "_self" 指定当前窗口中的当前帧。 
  "_blank" 指定一个新窗口。 
  "_parent" 指定当前帧的父级。 
  "_top" 指定当前窗口中的顶级帧。 
  如果没有为此参数指定值,将创建一个新的空窗口。在独立播放器中,可以指定新的 ("_blank" ) 窗口,也可以指定已命名的窗口。其它值不适用。 注意: 如果在只能与本地文件系统内容交互的沙箱中运行的 SWF 文件中的代码调用 navigateToURL() 函数,并为 window 参数指定一个自定义窗口名称,该窗口名称将转换为一个随机名称。该名称的格式为 "_flashXXXXXXXX" ,其中每个 X 均代表一个随机的十六进制数字。在同一会话中(直到您关闭包含浏览器窗口),如果您再次调用该函数并为 window 参数指定同一名称,将使用同一个随机字符串。 抛出:
  IOError - request 对象的 digest 属性不是 null 。如果在加载 SWZ 文件(一个 Adobe 平台组件)时调用 URLLoader.load() 方法,仅应设置 URLRequest 对象的 digest 属性。 
  SecurityError - 在 Flash Player(和 Adobe AIR 中的非应用程序沙箱内容)中,以下情况将引发此错误: 
  本地不受信任的 SWF 文件可能无法与 Internet 进行通信。要避免这种情况,可将此 SWF 文件重新分类为只能与远程内容交互或受信任。 
  导航操作试图评估伪 URL 的脚本编写,但包含文档(通常是浏览器中的一个 HTML 文档)来自您不具有访问权限的沙箱。要避免这种情况,可以在包含文档中指定 allowScriptAccess="always" 。 
  如果 SWF 文件包含在已将 allowScriptAccess 设置为 "none" 或 "sameDomain" 的 HTML 页中,而此 HTML 文件与 SWF 文件的域不匹配,将无法导航特殊窗口 "_self" 、"_top" 或 "_parent" 。 
  不能导航具有非默认名称的窗口,非默认名称来自位于 local-with-filesystem 沙箱中的 SWF 文件。 
  无法连接到常用的保留端口。有关已阻止的端口的完整列表,请参阅《ActionScript 3.0 编程》一书的"安全性"一章中的"限制网络 API"。 
  Error - 为了响应用户动作(如鼠标事件或按键事件),将不会调用此方法。此要求仅适用于 Flash Player 中的内容和 Adobe AIR 中的非应用程序沙箱内容。
  由文档可知:navigateToURL()可以撰写浏览器脚本
  我的应用:
  由于navigateToURL()的第一个参数为URLRequest对象类型,所以可以其中调用javascript函数 如这样可以刷新页面: navigateToURL(new URLRequest("javascript:window.location.reload()"), "_self"); 重开一个窗口打开google: navigateToURL(new URLRequest("http://www.google.com"),"_blank");
  在当前窗口打开google:navigateToURL(new URLRequest('http://www.google.com'),"_self"); 其它自己发挥吧

猜你喜欢

转载自hgfghwq11.iteye.com/blog/1572353
今日推荐