在JavaFX WebView中检测HTML textarea onkeyup事件 [英] Detecting HTML textarea onkeyup event in JavaFX WebView

查看:397
本文介绍了在JavaFX WebView中检测HTML textarea onkeyup事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在打开WebView时打印HTML textarea的内容,只要输入它即可。如果您尝试将 JavaFX TextArea 对象的内容打印到WebView中,请使用 解析方案 那么您应该将侦听器添加到TextArea而非WebView中。 如果您试图在HTML页面中的 HTML TextArea 标记中侦听事件在WebView中,您应该将侦听器添加到文档模型中:

  //我们需要等待文档加载
webEngine。 getLoadWorker()。stateProperty()。addListener(new ChangeListener< State>(){
public void changed(ObservableValue ov,State oldState,State newState){
if(newState == Worker.State.SUCCEEDED ){

//注意下面的类来自org.w3c.dom域
EventListener监听器= new EventListener(){
public void handleEvent(Event ev){
System.out.println(ev.getType());
}
};

Document doc = webEngine.getDocument();
Element el = doc.getElementById(textarea);
((EventTarget)el).addEventListener(keypress,listener,false);
}
}
});
webEngine.loadContent(< textarea id ='textarea'>< / textarea>);



I want to print content of HTML textarea inside WebView as soon as i type it.
PS: I tried listenin to keyevent of webview for some reason it didn't work.

解决方案

  1. If you are trying to print content of JavaFX TextArea object into WebView then you should add listeners to TextArea not WebView.

  2. If you are trying to listen for event in HTML TextArea tag inside HTML page in WebView you should add listeners to document model:

    // we need this to wait till document load
    webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() {
        public void changed(ObservableValue ov, State oldState, State newState) {
            if (newState == Worker.State.SUCCEEDED) {
    
                // note next classes are from org.w3c.dom domain
                EventListener listener = new EventListener() {
                    public void handleEvent(Event ev) {
                        System.out.println(ev.getType());
                    }
                };
    
                Document doc = webEngine.getDocument();
                Element el = doc.getElementById("textarea");
                ((EventTarget) el).addEventListener("keypress", listener, false);
            }
        }
    });
    webEngine.loadContent("<textarea id='textarea'></textarea>");
    

这篇关于在JavaFX WebView中检测HTML textarea onkeyup事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆