Расфокусировка поля ввода в веб-представлении

0

Приложение JavaFX отображает веб-страницу, используя веб-представление.

Мне нужно перехватывать всякий раз, когда пользователь фокусирует текстовое поле ввода (<input>), чтобы позволить ему вводить значение с клавиатуры (обычное поведение) или с помощью приложения Android.

Для этой второй части я WebEngine.executeScript() обратный вызов jQuery, используя WebEngine.executeScript() и этот Javascript:

jQuery(document).on('focus', 'input[type=text]', myCallback);

myCallback - это функция, которая вызывает событие внутри моего приложения Java. Когда пользователь закончит редактирование (например, нажав OK в приложении Android, нажав Enter на клавиатуре...), мне нужно сфокусировать поле ввода. Итак, что я пробовал:

  • Нефокусировка в Javascript с использованием $(":input").blur();
  • Фокусировка другого элемента в Javascript с использованием $("a").focus()
  • Нефокусировка веб-представления с помощью webView.getParent().requestFocus().

Последнее - моя лучшая попытка: поле ввода не сфокусировано. К сожалению, он снова фокусируется, как только пользователь нажимает на веб-страницу.

Теги:
javafx-2

2 ответа

1
Лучший ответ

Мне плохо, мне нужно сделать Javascript-вызовы (используя executeScript()) в потоке Java FX (Platform.invokeLater()).

На самом деле все решения, поставленные в этом вопросе, работают.

0

возможно, это помогает...

$('input').each(function(){
  $(this).trigger('blur');
  //each input event one by one... will be blured
})
  • 0
    К сожалению, поскольку другие решения, найденные до сих пор, не работают в JavaFX WebView. Спасибо, в любом случае!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню