我关注了这个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'
我怎样才能实现这个目标?
最佳答案
某些浏览器(如 Firefox)具有性能优化功能,可延迟加载不可见的 Flash 插件。除了确保它们至少部分可见之外,没有其他办法可以解决这个问题。
一种流行的解决方法是将它们的尺寸设置得非常小(只有几个像素)并确保它们在屏幕上,然后一旦它们加载,您就可以将它们移出屏幕或隐藏它们。
关于javascript - 使用 JavaScript 和 swfobject 检查远程主机上是否存在隐藏的 swf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19609247/