2010-04-07 4 views
1

этот код в мой плагин работал просто отлично:доступа внедренный объект с JQuery не работает в Firefox 3.6


jQuery('#embedded_obj', context).get(0).getVersion(); 

и HTML ...


<object id="embedded_obj" type="application/x-versionchecker-1.0.0.1"></object> 

В основном пытаются получить свойства из встроенного объекта. Но похоже, что get (0) возвращает объект html вместо фактического внедренного объекта.

Например, если я делаю:


var launcher = jQuery('#embedded_obj', context).get(0); 

for(prop in launcher){ 
    alert(prop + ': ' + launcher[prop]); 
} 

... он предупреждает такие вещи, как "getElementByNode", "scrollWidth", "clientLeft", "clientTop" и т.д.

Опять же работал раньше Firefox 3.6. Кто-нибудь еще видел это или имел какие-либо идеи/предложения?

Спасибо!

+0

Какой версии JQuery вы используете? Вы недавно его обновили? – Metropolis

ответ

1

Вы уверены, что работали раньше? JQuery (..). получить (..) всегда возвращает объект DOM (в данном случае <object> элемент), так что вы уверены, что вы не используете синтаксис как

var launcher = new VersionChecker(jQuery("#embedded_obj").get(0)); 
alert(launcher.getVersion()); 

Так с конструктором, который принимает уход за связью между элементом HTML DOM и фактическим внедренным объектом?

Если да, то вы проверили его с помощью небольшого файла test.html или открыть его с помощью двух браузеров, чтобы проверить разницу в поведении?

Edit: фига, действительно, есть что-то странное происходит на самом деле с объектом-тегом после того как я гугл об этом, и наткнулся на http://forum.jquery.com/topic/jquery-object-get-0-is-not-a-dom-element-in-ff-but-is-in-safari-is-this-a-bug

+0

Привет, спасибо за идею. Я попытался использовать test.html с помощью document.getElementById (...) вместо jQuery и все еще имел проблему, поэтому я уверен, что это что-то с настраиваемым плагином, который необходимо изменить. (Думаю, FF что-то изменил с помощью плагинов в 3.6.) В любом случае спасибо! – taber