一尘不染

在JavaFX WebView中检测HTML textarea onkeyup事件

html

我想在输入时立即在WebView中打印HTML文本区域的内容。
PS:出于某种原因,我尝试听keyEventwebView,但它不起作用。


阅读 333

收藏
2020-09-21

共1个答案

一尘不染

如果尝试将JavaFX TextArea对象的内容打印到WebView中,则应将侦听器添加到TextArea而不是WebView。

如果尝试在WebView的HTML页面内的HTML TextArea标记中侦听事件,则应将侦听器添加到文档模型:

// 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>");
2020-09-21