控制外出 URL 访问Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本 通过使用下列 API 可实现外出脚本访问和外出 URL 访问(通过使用 HTTP URL、mailto: 等):
对于从本地文件系统加载的内容,仅当代码和包含的网页(如果存在)位于受信任的本地沙箱或 AIR 应用程序安全沙箱时,才能成功调用这些方法。如果内容位于只能与远程内容交互的沙箱或只能与本地文件系统内容交互的沙箱中,则对这些方法的调用将失败。 对于非本地加载的内容,所有这些 API 都可以与其嵌入的网页进行通信,具体取决于下述 AllowScriptAccess 参数的值。flash.net.navigateToURL() 函数还有额外的功能,可以与任何打开的浏览器窗口或框架通信,而不只是与嵌入 SWF 文件的网页通信。有关此功能的详细信息,请参阅使用 navigateToURL() 函数。 HTML 代码中用于加载 SWF 文件的 AllowScriptAccess 参数控制能否从 SWF 文件内执行外出 URL 访问。此参数在 PARAM 或 EMBED 标签内设置。如果不设置 AllowScriptAccess 的值,则仅当 SWF 文件与 HTML 页来自同一个域时才能通信。 AllowScriptAccess 参数可以有 "always"、"sameDomain" 和 "never" 这三个可能值中的一个。
下面的示例说明如何在 HTML 页中设置 AllowScriptAccess 标签以允许对其他域进行外出 URL 访问: <object id='MyMovie.swf' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.adobe.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' height='100%' width='100%'> <param name='AllowScriptAccess' value='always'/> <param name='src' value=''MyMovie.swf'/> <embed name='MyMovie.swf' pluginspage='http://www.adobe.com/go/getflashplayer' src='MyMovie.swf' height='100%' width='100%' AllowScriptAccess='never'/> </object> 使用 navigateToURL() 函数除上述 allowScriptAccess 参数所指定的安全设置外,navigateToURL() 函数还有一个可选的第二参数:target。target 参数可用于指定将 URL 请求发送到的 HTML 窗口或框架的名称。此类请求还有其他一些安全限制,具体的限制取决于是否将 navigateToURL() 用作脚本访问或非脚本访问语句。 对于脚本访问语句,如 navigateToURL("javascript: alert('Hello from Flash Player.')"),适用以下规则。
对于非脚本访问语句(如 HTTP、HTTPS 和 mailto:),如果满足以下所有条件,则请求失败:
详细信息有关外出 URL 访问的详细信息,请参阅用于 Adobe Flash Platform 的 ActionScript 3.0 参考中的下列条目:
|
|