工作需要,软件内嵌入了一个html,html里有一个flash,遇到一个悲剧的问题。 actionscript与外部的javascript,需要用到ExternalInterface来调用js函数,但是,这必须在一个域名下进行,否则会进入安全沙箱机制。比如本地运行一个html,as里调用js函数就会失败,因为进入沙箱安全机制了.....请问高手,怎么去突破这个沙箱。 (类似调低flash安全设置等不能算)。我想到了几个比较折衷的办法:1:用socket模拟一个httpserver.2:改写webkit小弟菜鸟,只想到了这2个,第一个我已经在实验中。。请大家发挥想象力,看有什么最有效的方法来突破这个安全机制。
解决方案 »
- javascript 判断 是否是IE窗口
- 给Select赋值问题
- GIF图片在网页不动了!!!!!!!!..
- 为什么这样就能 刷新后保存信息????这句话啥意思????
- 一个简单的面向对象的问题
- 怎么得到WINDOWS登录用户名及域名?
- 保存cookie时,如何让生成的文件名中没有"www."之类
- 有左右ab框架,a框架触发b框架中的js函数
- 如何用js判断 表单的是否存在某个对象呀
- 我的<div>中有一段html内容,现在想将其中被<b></b>加粗的所有内容去除掉,除了字符串操作,是不是还有更方便的办法?
- 如何实现一个按钮,先后激活两个表单的检查(先检查第二个表单数据,再检查第一个表单数据)?
- 怎么点击一个连接打开新网站的同时 起初页面也转向新的网址
在一个本地html文件嵌入flash,没有服务器,如果有就不那么麻烦了。
大侠,失败了 flash.system.Security.allowDomain("*");
ExternalInterface.call("showJsFun");失败了。。 js函数没有被调用。。一旦放进一个服务器里就成功了 哎~ ~。
ExternalInterface.call(callback);
就行了的。当然,还要在as的主类中加:
Security.allowDomain("*");要不,lz先确认一下js是否加载正确。
不是, 你没有明白我说的。 as与js通信已经清楚怎么去弄了,但是现在这个通信只能在一个域名下进行,如果在本地进行会被沙箱的安全机制过滤掉,那个代码都正确的,我放到一个服务器上就能执行,但是本地就不行。现在是想一个办法能突破这个沙箱。
解决的方法lz你没提到, 就是服务器主动写策略文件回来.我用的flash的socket, 每当连接(即connect时), 服务端(php)判断 if(strpos($buf, 'policy-file-request')){
$msg = "<cross-domain-policy><allow-access-from domain='*' to-ports='*' /></cross-domain-policy>";
socket_write($clientSock, $msg."\0", strlen($msg."\0"));
}即: 当flash请求policy-file-request时便将策略文件的内容直接返回我最近也在研究flash, 共勉