Java <-> Javascript для сторонних разработчиков? - PullRequest
3 голосов
/ 13 ноября 2008

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

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

Есть ли:

  • способ использовать JSObject из чего-то, что не является подклассом апплета?
  • какой-то другой механизм для обратной связи с Javascript на вызывающей странице?

Ответы [ 3 ]

3 голосов
/ 13 ноября 2008

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

2 голосов
/ 14 ноября 2008

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

1 голос
/ 14 ноября 2008

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

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

...