flex中navigateToURL函数的应用

先看flex帮助文档的介绍
flash.net.navigateToURL(request:URLRequest, window:String=null):void

在包含 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");
    其它自己发挥吧

你可能感兴趣的:(Flex,email,navigateToURL)