Archives

Archive for 2006-10

Internet Explorer 7(IE7)不支持getURL()弹窗调用

( Software and Flash )

  Internet Explorer 7(IE7) RC1 版本发布了,正好本本是正版的WINXP,可以通过正版校验,故下载了一个IE7装上。平时做WEB应用开发,也顺便测试一下IE7的兼容性。
  几天使用感觉还可以,可是觉得IE7的TAB(标签)式浏览,不像M$鼓吹的那么好,在打开较多页面时候,IE很容易停止响应,看来还是不很稳定。在做一个FLASH应用的时候发现了一个严重的BUG,就是在FLASH里使用getURL(”http://www.sina.com.cn/”,”_blank”)的时候,IE7无法在新标签页中打开链接地址,只能在本页或本帧刷新,效果和getURL(”http://www.sina.com.cn/”,”_self”)相同,GOOGLE了一下,发现各种语言的BUG报告,看来全世界的WEBdeveloper都很郁闷。
  还有就是IE7的容错性变差(其实是好事,和FireFox更像了,严格按标准操作),胡乱写代码的同学要注意了,当心在IE6中的“好”页面在IE7里一团糟,IE7可不给面子哦。

再谈flash调用Javascript

( Javascript and Flash )

Flash调用页面中的javascript函数在做一些flash操作页面DOM的应用的时候很有用,在flash actionscript中调用javascript中的函数方法有两个:
getURL(”javascript:checkit()”)
FSCommand(”checkit”,id);
第一种: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