我的JavaFX应用程序正在使用Web视图显示网页。
每当用户聚焦文本输入字段(<input>
)时,我都需要拦截,以便允许他使用键盘(正常行为)或使用Android应用程序键入值。
对于第二部分,我使用WebEngine.executeScript()
方法绑定了一个jQuery回调,这个Javascript:
jQuery(document).on('focus', 'input[type=text]', myCallback);
myCallback
是一个在我的Java应用程序中引发事件的函数。当用户完成编辑(即在Android应用上按确定,在键盘上按 Enter )时,我需要取消焦点< / em>输入字段。所以,我尝试过:
$(":input").blur();
$("a").focus()
webView.getParent().requestFocus()
。最后一个是我的最佳尝试:输入字段未聚焦。不幸的是,只要用户点击网页,它就会再次聚焦。
答案 0 :(得分:1)
我的不好,我需要在Java FX线程(executeScript()
)中进行Javascript调用(使用Platform.invokeLater()
)。
事实上,问题中提供的所有解决方案都有效。
答案 1 :(得分:0)
也许这有帮助...
$('input').each(function(){
$(this).trigger('blur');
//each input event one by one... will be blured
})