flex中navigateToURL函数的应用
先看flex帮助文档的介绍flash.net.navigateToURL(request:URLRequest,window:String=null):void在包含 Flash Player 容器的应用程序(通常是一个浏览器)中,打开或替换一个窗口。在 Adobe AIR 中,该函数可在默认的系统Web 浏览器中打开 URL。在默认的系统 Web 浏览器中打开 URL。开发人员通常将获取自 Fl
·
先看flex帮助文档的介绍
flash.net.navigateToURL(request:URLRequest, window:String=null):void
-
在包含 Flash Player 容器的应用程序(通常是一个浏览器)中,打开或替换一个窗口。在 Adobe AIR 中,该函数可在默认的系统 Web 浏览器中打开 URL。在默认的系统 Web 浏览器中打开 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");
-
其它自己发挥吧
-
开发人员通常将获取自 FlashVars 等外部来源的 URL 值传递给
navigateToURL()
函数。攻击者可能会尝试操纵这些外部来源,以进行跨站脚本等攻击。因此,开发人员应该验证所有 URL,然后才能将其传递给此函数。
参数:
更多推荐
已为社区贡献1条内容
所有评论(0)