0

我想为 webEngine 加载的整个文档添加通用事件侦听器,使用我的 javafx 后端引擎,而不使用任何 javascript。我想接收事件类型(例如,单击或文本区域中的 textchange)和事件源(元素,如 textarea 或按钮),并将这些参数传递给外部 java 事件侦听器以在我的应用程序中执行进一步的操作(这是一个摇摆应用程序)。我该如何做到这一点,而不向所有事件类型添加相同的侦听器?这是简短的代码示例:

//creating "universal" event listener
EventListener eventListener = new EventListener() {
    @Override
    public void handleEvent(Event evt) {
        String type = evt.getType();
        EventTarget target = evt.getTarget();
        if (target instanceof Element) {
            Element source = (Element) target;
            externalJavaHandler.handleEvent(type, source);
        }
    }
}

Document doc = engine.getDocument();
int childrenCount = doc.getChildNodes().getLength();

//assigning same listener to all DOM elements
for (int i = 0; i < childrenCount; i++) {
    Node node = doc.getChildNodes().item(i);

    //what type should i pass to method instead of "universal"?
    ((EventTarget) node).addEventListener("universal", eventListener, true);
}
4

0 回答 0