Java <-> Javascript для не-апплетов?

Я работаю с существующей базой кода Java, которая, хотя ее можно вызывать из HTML-страницы с помощью тега <APPLET>, на самом деле не является подклассом класса Applet. Те же самые jar-файлы также используются в контексте, отличном от браузера, поэтому они не являются подклассом Applet.

Теперь мне нужно передать некоторые значения из Java обратно в Javascript вызывающей страницы. Обычно это делается с помощью JSObject, но насколько я могу, нужно использовать JSObject.getWindow, который работает только для подклассов Applet.

Есть ли:

  • способ использовать JSObject из чего-то, что не является подклассом апплета?
  • какой-то другой механизм для обратной связи с Javascript вызывающей страницы?
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
0
427
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вызовите JSObject.getWindow(this) в апплете. Затем передайте JSObject в код, который в нем нуждается, обычным образом.

Ответ принят как подходящий

Я думаю, вам действительно нужно будет реализовать апплет в файле jar для обработки связи между вашим кодом и самим браузером. Возможно, просто используйте банку без апплета в качестве библиотеки классов и сделайте банку апплета простой оболочкой, которая проксирует ваши вызовы между браузером и кодом Java.

Что не так с возвратом значения?

Из Javascript Вы можете получить доступ к Java-объекту, используя getElementById ("id-of-embed-tag"). Затем вы можете вызвать любой общедоступный метод для этого объекта. Объект Java, возвращаемый этим методом, будет доступен вашему коду Javascript.

Это подход, который я не рассматривал. Я бы закончил опрос из Javascript, пока что-то не изменится, но это может сработать.

DGentry 15.11.2008 07:31

Другие вопросы по теме