Javascript / SWFobject | 在创建动态嵌入对象时确定是否存在swf对象

当我创建临时隐藏在选项卡中的SWF对象,因此在某些浏览器(如FireFox)中没有完全加载时,我似乎无法找到是否加载了SWF,因此我可以与它进行通信。

/* Generate SWF (onDocumentReady())*/ swfobject.embedSWF("graph.swf","line-graph-one","100%","250","8","expressInstall.swf",null,null,null,swfRegister); /* Callback function * ------------------- * Is triggered when SWF object has done it's job, which is fine, but not a * suggestion that the SWF is actually loaded by the browser) */ function swfRegister(e){ console.log(e); } 

这是不起作用的。 虽然元素存在于DOM中,但不可能以某种方式与它进行通信。 在这种情况下,FireFox没有加载SWF,因为隐藏了父容器。(display:none;)

 document.getElementById('line-graph-one').reloadAll("foobar"); Resulting in: document.getElementById("map-one").reloadAll is not a function 

它仅在我单击创建SWF的选项卡时才有效。 所以FireFox加载它。

我需要一种方法来检查它是否已加载,

也许首先进行能见度检查?

 var $el = $("#map-one"); if ( $el.is(':visible') ) { $el[0].reloadAll('foobar'); }