Comments 20
Хотя нет, слишком уж навороченно получается если данные еще и на серверную часть передавать. Этот метод подойдет если в проекте уже ипользуется GWT.
Господи. GWT-то тут причем? Он тут ничем не поможет.
Автор, я так понял, решает проблему взаимодействия Standalone Java Application и HTML-страницы, открытой в браузере, встроенном в его приложение.
Честно говоря, за изложение материала хочется поставить двойку. Даже просто за заголовок. Абсолютно неинформативно.
Автор, я так понял, решает проблему взаимодействия Standalone Java Application и HTML-страницы, открытой в браузере, встроенном в его приложение.
Честно говоря, за изложение материала хочется поставить двойку. Даже просто за заголовок. Абсолютно неинформативно.
23.3. Взаимодействие с JavaScriptсценариями из Java«JavaScript. Подробное руководство, 5-е издание — Флэнаган Д. 2008»
…
Любое взаимодействие Java с JavaScriptсценарием осуществляется через экземпляр класса netscape.javascript.JSObject.
Насколько я понимаю это оно? В книге есть примеры и полное описание объекта (также рассказано и взаимодействие в обратном направлении).
Возможно по ссылкам выше уже описано такое решение: использовать в клиенте встроенный в JRE http-сервер (com.sun.net.httpserver.HttpServer).
Тогда можно будет очевидным образом взаимодействовать со страницы браузера с приложением.
Плюсы такого решения: всё достаточно «очевидно» в том смысле что нет черной магии JS с изменением статуса а потом чтением этого статуса и нет BrowserFunction. Если есть ForntEnd разработчик — он может ваять свои интерфейсы и взаимодействие привычным и понятным способом. Это становится особенно важным когда взаимодействие становится сложней чем просто передать содержимое поля.
Тогда можно будет очевидным образом взаимодействовать со страницы браузера с приложением.
Плюсы такого решения: всё достаточно «очевидно» в том смысле что нет черной магии JS с изменением статуса а потом чтением этого статуса и нет BrowserFunction. Если есть ForntEnd разработчик — он может ваять свои интерфейсы и взаимодействие привычным и понятным способом. Это становится особенно важным когда взаимодействие становится сложней чем просто передать содержимое поля.
Мне кажется для десктопного прилежения на SWt как раз более муторным будет устраивать взаимодействие через httpServer. Спрашивается зачем? KISS никто не отменял :)
KISS как раз будет со встроенным http-сервером)
Есть html страница в браузере. Её делают те кто в этом хорошо понимает и взаимодействуют привычным образом.
Использование стандартных вещей (status/title) нестандартным образом на KISS (который «никто не отменял») никак не тянет :)
Да что CustomFunction == KISS — тоже ниоткуда не следует
Есть html страница в браузере. Её делают те кто в этом хорошо понимает и взаимодействуют привычным образом.
Использование стандартных вещей (status/title) нестандартным образом на KISS (который «никто не отменял») никак не тянет :)
Да что CustomFunction == KISS — тоже ниоткуда не следует
При двух одновременно запущенных экземплярах программы редакторы одновременно работают?
Приложения Standalone. Поэтому запустив 2 экземпляра, в получаете 2 отдельных приложения, в каждом из которых запущен свой instance браузера. соответственно данные не являются общими, и callback функции выполняются отдельно в каждом браузере. Если даже одноврменно редактировать один и тот же файл в каждом из двух приложений (ну при условии отсутсвия лока на файл)
Извиняюсь, что так не скоро отвечаю :)
Просто у Java был наследный баг со встроенным браузером — на все приложения Java запускался единственный его экземпляр. В приницпе, казалось бы, ничего страшного — фактически один экземполяр, у которого открыты разные вкладки, но на практике вылазило множество побочных эффектов. По крайней мере под Windows было именно так. Потому и интересно насколько хорошо работают два запущенные приложения в данном случае.
Просто у Java был наследный баг со встроенным браузером — на все приложения Java запускался единственный его экземпляр. В приницпе, казалось бы, ничего страшного — фактически один экземполяр, у которого открыты разные вкладки, но на практике вылазило множество побочных эффектов. По крайней мере под Windows было именно так. Потому и интересно насколько хорошо работают два запущенные приложения в данном случае.
Я тоже красавец с ответом =)
Ммм… не уверен по поводу баги. У меня в моём приложении 4 виджета браузера. Запустил парочку инстансов, все диалоги с браузерами пооткрывал. Логика моего приложения работает без сбоев.
Кроме всего прочего, один и тот же диалог с браузером запущен был несколько раз. Всё нормально отработало, нигде ничего не было нарушено. (Это в контексте одной jvm)
А 2 приложения запускаются в разных jvm ещё помоему, так что инстансы браузера явно не могут перекрываться.
Ммм… не уверен по поводу баги. У меня в моём приложении 4 виджета браузера. Запустил парочку инстансов, все диалоги с браузерами пооткрывал. Логика моего приложения работает без сбоев.
Кроме всего прочего, один и тот же диалог с браузером запущен был несколько раз. Всё нормально отработало, нигде ничего не было нарушено. (Это в контексте одной jvm)
А 2 приложения запускаются в разных jvm ещё помоему, так что инстансы браузера явно не могут перекрываться.
Большое спасибо. А то, я как два года назад на эти грабли напоролся, так с тех пор и боюсь браузеры для пользовательского интерфейса в Java использовать.
Могу развить вам новую параною =)
Вот столкнулся недельку назад. Ситуация какая. Есть BrowserFunction. Я ей передаю в аргументы htm из jquery. Так вот, если браузер подтянет не вебкит или дефолтный браузер, а мозиллу, то в java передастся голый текст без html. для Webkit браузера и ИЕ (на винде) всё отлично возвращается HTML. Для 5го фф вернётся хтмл без хтмл =) по сути результат выполнения $.text()... Побороть не смог, буду сажать своих пользователей на хром
Вот столкнулся недельку назад. Ситуация какая. Есть BrowserFunction. Я ей передаю в аргументы htm из jquery. Так вот, если браузер подтянет не вебкит или дефолтный браузер, а мозиллу, то в java передастся голый текст без html. для Webkit браузера и ИЕ (на винде) всё отлично возвращается HTML. Для 5го фф вернётся хтмл без хтмл =) по сути результат выполнения $.text()... Побороть не смог, буду сажать своих пользователей на хром
Sign up to leave a comment.
Получаем данные из Javascript через функции Java