доступ к встроенному объекту с помощью jquery, не работающего в Firefox 3.6 - PullRequest
1 голос
/ 07 апреля 2010

этот код в моем плагине работал нормально:


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.Кто-нибудь еще видел это или есть какие-либо идеи / предложения?

Спасибо!

1 Ответ

1 голос
/ 07 апреля 2010

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

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

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

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

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

...