0

我的 JavaFX 应用程序正在使用 Web 视图显示网页。

每当用户关注文本输入字段 () 时,我都需要拦截<input>,以便允许他使用键盘(正常行为)或使用 Android 应用程序键入值。

对于第二部分,我使用WebEngine.executeScript()方法和这个 Javascript 绑定了一个 jQuery 回调:

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

myCallback是一个在我的 Java 应用程序中引发事件的函数。当用户完成编辑(即通过按OKAndroid 应用程序,按Enter键盘...),我需要取消聚焦输入字段。所以,我已经尝试过:

  • 不专注于 Javascript,使用$(":input").blur();
  • 使用 Javascript 聚焦其他元素$("a").focus()
  • 使用webView.getParent().requestFocus().

最后一个是我最好的尝试:输入字段没有焦点。不幸的是,一旦用户点击网页,它就会再次聚焦。

4

2 回答 2

1

我的错,我需要executeScript()在 Java FX 线程( )中进行 Javascript 调用(使用Platform.invokeLater())。

事实上,问题中提供的所有解决方案都有效。

于 2013-10-22T06:43:17.453 回答
0

也许这有帮助...

$('input').each(function(){
  $(this).trigger('blur');
  //each input event one by one... will be blured
})
于 2013-10-21T17:28:38.043 回答