Flash调用页面中的javascript函数在做一些flash操作页面DOM的应用的时候很有用,在flash actionscript中调用javascript中的函数方法有两个:
第一种:getURL()实际上的原理相当于HTML中<a href=”javascirpt:alert(’foobar’);”></a>的调用javascript的方式,相当于一个对本页的一个http请求。
第二种:FSCommand(”checkit”,id);原理类似于HTML中<a href=”#” onclick=”checkit(1)” ></a>,相当于直接调用。
这两种方法最大的不同就是前者向浏览器发送新的HTTP请求,后者没有。这样就带来了一个不可预知的问题,IE和firefox对于第一种的请求方式不同。在IE中浏览器会中断当前的所有请求,来响应来自flash getURL新的请求,这会带来什么问题呢?如果页面还没有下载完,正在下载的东东(图片,外部脚本,外部样式)都会停止,导致页面下载不全。这种情况在firefox中不会出现,因为处理方式不同,FF不会把这个当成一个新的HTTP请求,因为请求的地址是一段JS调用,(IE真的很垃圾,纯属个人观点,FFer万岁)。
所以建议如果不能确定flash是在页面下载完成之后才进行JS调用,那么就使用FSCommand吧。
getURL will terminate all of current http requests in internet explorer.FSCommand is ok, so use FSCommand instead of getURL