使用JavaScript和swfobject检查远程主机上是否存在隐藏的swf

时间:2013-10-26 16:48:08

标签: javascript swfobject

我按照tutorial检查远程服务器上是否存在swf。这是我的代码:

var url = 'http://' + layer_path;
var flashvars = {};
var params = { scale: "exactFit", wmode: "transparent" , allowscriptaccess: "always" };
var attributes = {class:'flash' ,name: swf_id};
var callback = function(e){
    if (hidden) $('#'+conteiner_id).hide();
    window.setTimeout(function(){

        if (e.ref.PercentLoaded() == 0) {
            // File does not exists
        }
    },1000);
};
swfobject.embedSWF(url, swf_id, "100%", "100%", "9.0.0","expressInstall.swf", flashvars, params, attributes,callback);

将swf插入到具有swf_id的div中,该div位于ID为conteiner_id的div中。

代码效果很好,除非hide参数设置为true,并且隐藏了父div。然后,我收到以下错误消息:

Uncaught TypeError: Object #<HTMLObjectElement> has no method 'PercentLoaded' 

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

某些浏览器(如Firefox)具有性能优化功能,可以延迟加载不可见的Flash插件。除了确保它们至少部分可见之外,没有办法解决它。

一种流行的解决方法是将它们的大小设置得非常小(只有几个像素)并确保它们在屏幕上,然后一旦加载,就可以将它们移出屏幕或隐藏它们。