在JavaFX WebView中检测HTML textarea onkeyup事件

时间:2012-05-18 04:51:18

标签: html webview javafx javafx-2

我想在输入后立即在WebView中打印HTML textarea的内容 PS:我试图听keyEvent webView {{1}}因为某些原因它不起作用。

1 个答案:

答案 0 :(得分:10)

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

  2. 如果您正在尝试在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>");