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"); 其它自己发挥吧
发表评论
-
截取字符串转换成数字
2012-07-06 09:51 890遇到这样一个问题说的是截取字符串转换成数字。 比如,0 ... -
QT正则表达式小例子
2012-07-06 09:45 1010判断合法IP的QT正则表达式: bool IsIPad ... -
复杂的正则表达式应该如何构造
2012-07-06 09:37 550昨天Snopo问我如何 ... -
Falagard skinning system for CEGUI参考手册简单翻译(一)
2012-07-06 09:30 705声明:转自http://blog.csdn.net/pow ... -
列表划过效果,和点击效果!!!
2012-07-05 20:45 609列表划过效果,和点击效果!!! 收藏 js效果的鼠 ... -
用Servers组件控制Word
2012-07-03 13:43 657在Delphi中控制Word的组件主要有WordAppli ... -
Flex 动态创建 多个曲线图/柱形图 ColumnSeries
2012-07-02 10:36 730获取数据后的回调函数 private functio ... -
flex 界面改进
2012-07-02 10:36 570f 代码如下: ... -
Flex中如何通过paddingTop样式设置TabNavigator控件内容与Tabs间距离的例子
2012-07-02 10:36 586... -
关于FLEX 里控件宽度的一个问题
2012-07-02 10:36 570BorrowsO ... -
Flex、JQuery、ExtJS 的选择
2012-07-01 00:13 540开发Rich Client,现在最流行的就是3种解决方案: ... -
flex3 跑在ie8 flash 10里不稳定?
2012-07-01 00:13 658很简单的一个应用,mx:application creat ... -
Flex: DataGroup 组件增加滚动条
2012-07-01 00:13 740本想用mx:List 实现一个联系人列表,无奈AS4不知怎 ... -
Flex控制对主机网页中脚本的访问
2012-07-01 00:13 532通过使用以下 ActionScript 3.0 API 可 ...
相关推荐
10.2 在Flex中使用Flash CS所开发的控件 306 10.3 Flex访问.Net 308 10.3.1 Fluorine的安装和配置 309 10.3.2 Flex通过Fluorine访问.NET 311 10.4 小结 314 附录 Flex Builder 3中的项目如何迁移至Flash ...
Flex 编程小技巧 1. 复制内容到剪贴板 1. System.setClipboard(strContent); 2. 复制一个 ArrayCollection 1. //dummy solution( well, it works ) 2. var bar:ArrayCollection = new ArrayCollection(); 3. for ...
我做flex项目时收集的,与大家共享,共同进步。(如:页面重载: navigateToURL(new URLRequest("javascript:location.reload();"),"_self") 关闭浏览器:navigateToURL(new URLRequest("javascript:window.close()"),...
flashbuilder4.5开发的查询qq好友是否在线,如果在线,点击即可跳出qq的交谈对话框 另外还搞清楚了Sprite如果想加到mxml文件中显示,必须加到另外的可视组件中才行
flash CS4 actionscrpit 3.0 ... //navigateToURL(new URLRequest("javascript:getFlash()")); } ------------------------- 全部代码 js代码如下: function getflash() { alert('显示结果'); }
import flash.net.navigateToURL; import flash.net.URLRequest; import flash.utils.ByteArray; public class Main extends Sprite { private var rootMenu:NativeMenu = new NativeMenu; private var ...
import flash.net.navigateToURL; import flash.net.URLRequest; import flash.ui.ContextMenu; import flash.ui.ContextMenuItem; //===============// public class Main extends Sprite { private var...