Flash与页面交互的钥匙之 AllowScriptAccess

Flash与页面交互的钥匙之 AllowScriptAccess原文:http://cloud21.iteye.com/blog/729676今天为一个flash的问题搞了半天,flash在页面中点不开js的提示框,如果单是这一个问题,那我立刻就能确定问题所在,一

大家好,又见面了,我是你们的朋友全栈君。

原文:http://cloud21.iteye.com/blog/729676

今天为一个flash的问题搞了半天,flash在页面中点不开js的提示框,如果单是这一个问题,那我立刻就能确定问题所在,一定是allowScriptAccess这个属性有问题,可是同时还存在另一个问题,我的flash中的链接换成_self或_parent就没反应了,我随即将解决问题的焦点放在了flash上,找了半天,也没发现什么异常,最后抱着先解决js交互的问题的想法改了allowScriptAccess,谁知链接的问题也被修复了,我开始思考,为什么呢?于是找到这个属性的手册,原来问题出在Target属性上。 

先说这个属性的一般特性。 

比如:<param name=”allowScriptAccess”value=”sameDomain”/> 

value参数说明: 
 always 允许随时执行脚本操作。 
 never 禁止所有脚本执行操作。 
 samedomain 只有在 Flash 应用程式来自和 HTML 页相同的域时才允许执行脚本操作。 
 所有 HTML 发布模板使用的默认值均为 samedomain。 

  使用 allowscriptaccess 使 Flash 应用程式可和其所在的 HTML 页通信。此参数是必需的,因为 fscommand() 、getURL()、ExternalInterface.call(),甚至navigateToURL()都可能导致 JavaScript 使用 HTML 页的权限,而该权限可能和 Flash 应用程式的权限不同。这和跨域安全性有着重要关系。 

  也就是说如果swf在A.rangerch.com下,不过页面在B.rangerch.com下,想用getURL或fscommand调用页面中的js是不能的,除非你将value设置为always。特别是navigateToURL和getURL,当它们的第二个参数不是_blank时(_self,_parent,_top),也被定义了与js交互一样的安全限制,即也需要设置allowScriptAccess! 

这下搞清楚了,想一下,其实Adobe的工程师们这么做也是有道理的。 

下面是Flash文档中的解释,已经很详细了: 

ActionScript 3.0 编程 
        
  
Flash Player 安全性 > 控制对主机网页中脚本的访问  
  

控制对主机网页中脚本的访问 
通过使用以下 ActionScript 3.0 API 可实现外出脚本访问: 

•flash.system.fscommand() 函数 
•flash.net.navigateToURL() 函数(当指定 navigateToURL(“javascript: alert(‘Hello from Flash Player.’)” 等脚本访问语句时) 
•flash.net.navigateToURL() 函数(当 window 参数设置为”_top”、”_self”或”_parent”时) 
•ExternalInterface.call() 方法 
对于本地运行的 SWF 文件,仅当 SWF 文件和包含该文件的网页(如果存在)位于受信任的本地安全沙箱中时,才能成功调用这些方法。如果内容位于只能与远程内容交互的沙箱或只能与本地文件系统内容交互的沙箱中,则对这些方法的调用将失败。 

HTML 代码中用于加载文件的 AllowScriptAccess 参数控制能否从 SWF 文件内执行外出脚本访问。 

在 HTML 代码中为承载 SWF 文件的网页设置此参数。可以在 PARAM 或 EMBED 标签中进行设置。 

AllowScriptAccess 参数可以有 “always”、”sameDomain” 和 “never” 这三个可能值中的一个: 

•当 AllowScriptAccess 为”sameDomain”时,仅当 SWF 文件和网页位于同一域中时才允许执行外出脚本访问。这是 AVM2 内容的默认值。 
•当 AllowScriptAccess 为”never”时,外出脚本访问将始终失败。 
•当 AllowScriptAccess 为”always”时,外出脚本访问将始终成功。 
如果未在 HTML 页面中为 SWF 文件指定 AllowScriptAccess 参数,则默认为 AVM2 内容的”sameDomain”。 

下面是一个在 HTML 页面中设置 AllowScriptAccess 标签的示例: 

Java代码  
收藏代码

  1. <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%’>  
  2. <param name=‘AllowScriptAccess’ value=‘never’/>  
  3. <param name=‘src’ value=”MyMovie.swf’/>  
  4. <embed name=‘MyMovie.swf’ pluginspage=‘http://www.adobe.com/go/getflashplayer’ src=‘MyMovie.swf’ height=‘100%’ width=‘100%’ AllowScriptAccess=‘never’/>  
  5. </object>   

AllowScriptAccess 参数可以防止从一个域中承载的 SWF 文件访问来自另一个域的 HTML 页面中的脚本。对从另一个域承载的所有 SWF 文件使用 AllowScriptAccess=”never” 可以确保位于 HTML 页面中的脚本的安全性。 

有关详细信息,请参阅《ActionScript 3.0 语言和组件参考》 中的以下条目: 

•flash.system.fscommand() 函数 
•flash.net.navigateToURL() 函数 
•ExternalInterface 类的 call() 方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155137.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 考研数据库系统概论题目整理总结_数据库系统概论pdf

    考研数据库系统概论题目整理总结_数据库系统概论pdf数据库系统概论题目自整理说复试题目过于牵强,只是自己整理的一些知识点而已,为了便于理解和背诵,有些部分定义和说明尽量简明扼要,如有错误请多多指教!(不可转载)1.试述数据、数据库、数据库系统、数据库管理系统的概念。(l)数据(Data):描述事物的符号记录称为数据。数据的含义称为语义,数据与其语义是不可分的。(2)数据库(DataBase,简称DB):若干个相互之间有关联关系的表的集合,表就是关系。数据库中的数据具有永久存储,易扩展,可共享的特点。(3)数据库系统(Data

    2022年9月2日
  • C语言之位运算符_c语言按位取反运算符怎么用

    C语言之位运算符_c语言按位取反运算符怎么用1、在C语言中,位运算符能够针对整数和字符数据的位(bit)进行逻辑与位移的运算,通常区分为“位逻辑运算符”与“位位移运算符”两种。2、位逻辑运算符如下表:运算符 功能 运算过程 & AND(与) 逐位与 | OR(或) 逐位或 ^ XOR(异或) 逐位异或 ~ NOR(非) 逐位非 案例程序如下:#include<stdio.h>#include<stdlib.h&gt…

    2022年10月4日
  • wsus可以打mysql中间件补丁_加入WSUS补丁服务器并下载补丁

    ——–加入WSUS补丁服务器并下载补丁_不安装——-@echooffregdeleteHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate/vAccountDomainSid/fregdeleteHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Wind…

    2022年4月7日
  • Linux09:(1.5k)文件查找,文件的打包与压缩「建议收藏」

    Linux09:(1.5k)文件查找,文件的打包与压缩「建议收藏」文章目录一.文件查找1.which——命令查找2.find——针对文件名,类型属性查找3.locate——依赖数据库查找二.文件的打包与压缩tar1.打包2.解压缩一.文件查找1.which——命令查找#which 命令(也可用whereis)——可获得该命令的绝对路径alias是别名,每次敲ls就相当于敲了ls –color=auto,所以ls列出来的文件会自动上色2.find——针对文件名,类型属性查找#find 路径 选项 描述eg.按名字查找/etc目录下的hosts文件#fi

    2022年8月9日
  • 【csma/ca协议和csma/cd协议的matlab仿真详解】

    【csma/ca协议和csma/cd协议的matlab仿真详解】首先你的熟悉csma/ca协议,csma/cd协议;csma/ca协议:点击打开链接csma/cd协议:点击打开链接这个课题有几个难点部分:1.就是需要考虑各种情况,并对每一种情况都必须做出相应的处理。2.怎么展示,怎么简单、直观而有效的展示你的程序正确性。鉴于本程序我采用动态图形形式展示csma/ca协议的运行过程。以下是我程序的运行结果的部分展示:1…

    2022年10月25日
  • idea全局查找关键字快捷键_hbuilder全局搜索

    idea全局查找关键字快捷键_hbuilder全局搜索简介在使用IDEA时,可以使用双击Shift的方式进行关键字的查找,这是个很好的功能。但IDEA也提供了对于字符串的查找,比如说查找代码中"192.168.1.100"的字符串,又该如何敲击呢。用法Edit-&gt;Find-&gt;FindinPath-&gt;输入感兴趣的内容即可快捷键Ctrl+Shift+F…

    2022年10月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号