2010-09-16 3 views
1

Когда я создаю объекты SWF, которые временно скрыты в вкладках, поэтому они не полностью загружены в некоторых браузерах, например FireFox, я не могу найти способ выяснить, есть ли SWF загружен или нет, поэтому я могу общаться с ним.Javascript/SWFobject | Определите, существует ли 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, поскольку родительский контейнер скрыт (дисплей: нет;)

document.getElementById('line-graph-one').reloadAll("foobar"); 

Resulting in: document.getElementById("map-one").reloadAll is not a function 

Он работает только тогда, когда я нажимаю на вкладку, где была создана SWF.. Поэтому FireFox загружает его.

Мне нужен способ, чтобы проверить, если он загружен,

ответ

1

Возможно, видимость проверки первых?

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

Это не работает, потому что элемент уже существует в DOM, но реальный SWF не загружается FireFox. (Firefox имеет тенденцию загружать только SWF-файлы, видимые на экране). Я отредактирую свой пост. – dropson

+0

Ах, если это вопрос, возможно, вы можете просто проверить, видно ли это в первую очередь. – BBonifield

+0

Отлично :) Это работает – dropson

 Смежные вопросы

  • Нет связанных вопросов^_^