JS判断SWF,JPG加载完毕、兼容(Activex,plugIn)所有浏览器
这里主要说下监听SWF的加载。
网上流传已久的监听方法,只能在IE(Activex插件下)下实现。在使用plugin的浏览器下无法监听。
首先贴张 chrome下载图
这里提供一个可以监听所有浏览器的方式:
我修改后方便阅读使用的使用的版本:(20140718更新了以下失效链接)
http://pan.baidu.com/s/1sjLhJIH
注意我加载的SWF在我的空间,跨域以及本地都无法调用。请自行修改HTML中加载SWF的路径,并不要使用 file://来访问。
你可以在我的网站查看效果
http://luoee.com/lab/jsloadswf/ 本人小站暂时关闭
原理说明:
看了下作者的文件简单来说:还是使用了JS与一个loader的swf来完成监听的。
通过JS将要加载的文件地址传输给这个事先制作好的loader,通过这个swf来加载文件,同时监听加载完成时,调用JS来抛出事件。
这个demo不会显示出swf,只是用来监听使用。如果你的网站有很多swf(小游戏网站),那么你可以这样来实现:
1 制作一个loading等待的图片(可以是广告图等)
2 等到监听到加载完毕时,关闭loading ,再重新使用你自己的代码来加载SWF并显示。(这时将会从缓存读取,注意safari最大缓存的单个文件是5M 至少目前是这么大)
也许你要问为什么不直接用它的方式来显示呢?
当让你需要修改它的代码,这个对很多人来说有一点难度吧,另外如果你加载SWF与页面有数据交互的话使用它的方式可能会失效!
如果你对FLASH和js都有一定了解,那么你也可以自己写一个loader,来实现这些功能。当然你在制作这个loader的时候可以跟具你自己的需求来自定义,这样就不需要再有上面的第2步了。
我在这里就不在新制作一个了。如果公司后期有需求,我再制作一下!并共享出来!