jQuery и апплеты Java

Я работаю над проектом, где мы используем апплет Java для части UI (карта, конкретно), но создаем остальную часть UI вокруг апплета в HTML/JavaScript, общаясь с апплетом через LiveConnect/NPAPI. Немного причудливый, я знаю, но давайте предположим, что установка не рассматривается. Я начал планирование использования jQuery как моя платформа JavaScript, но я столкнулся с двумя проблемами.

Выпустите первое:

Выбор апплета не обеспечивает доступ к методам апплета.

Java:

public class MyApplet extends JApplet {
  // ...
  public String foo() { return "foo!"; }
}

JavaScript:

var applet = $("#applet-id");
alert(applet.foo());

Выполнение вышеупомянутого JavaScript приводит к

$("#applet-id").foo is not a function

Это в отличие от Прототипа, где аналогичный код действительно работает:

var applet = $("applet-id");
alert(applet.foo());

Так..., где методы апплета пошли бы?

Выпустите второе:

Существует известная проблема с jQuery и апплетами в Firefox 2: http://www.pengoworks.com/workshop/jquery/bug_applet/jquery_applet_bug.htm

Это - съемка общим планом, но кто-либо знает об обходном решении? Я подозреваю, что эта проблема не является закрепляемой, который будет означать переключаться на Прототип.

Спасибо за справку!

10
задан Matthew Maravillas 11 September 2008 в 16:21
поделиться

1 ответ

Для первого выпуска, как насчет попытки

alert( $("#applet-id")[0].foo() );

Поскольку вторым выпуском здесь является поток с возможным обходным решением.

Заключение в кавычки обходного решения

// Prevent memory leaks in IE
// And  prevent errors on refresh with events  like mouseover in other  browsers
// Window isn't included so as not to unbind existing unload events
jQuery(window).bind("unload",
function() {
        jQuery("*").add(document).unbind();
});

изменение, которые кодируют к:

// Window isn't included so as not to unbind existing unload events
jQuery(window).bind("unload",
function() {
        jQuery("*:not('applet, object')").add(document).unbind();
});
12
ответ дан 4 December 2019 в 00:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: