У меня есть WebView
в JavaFX. И я хочу добавить обработчик событий, чтобы решить, хочу ли я заблокировать гиперссылку или перенаправить пользователя. Я уже видел this question. Но не описан способ блокировки перенаправления.Блокировка гиперссылок в Javafx WebView/Web Engine
EDIT:
getWebEngine().getLoadWorker().stateProperty().addListener(new ChangeListener<State>() {
public void changed(ObservableValue ov, State oldState, State newState) {
if (newState == Worker.State.SUCCEEDED) {
EventListener listener = new EventListener() {
public void handleEvent(Event ev) {
System.out.println("KLIKNIETO!!!");
}
};
Document doc = getWebEngine().getDocument();
NodeList lista = doc.getElementsByTagName("a");
System.out.println("Count: " + lista.getLength());
for (int i=0; i<lista.getLength(); i++)
((EventTarget)lista.item(i)).addEventListener("click", listener, false);
}
}
});
Импорт:
import org.w3c.dom.events.Event;
import org.w3c.dom.events.EventListener;
import org.w3c.dom.events.EventTarget;
Спасибо, но как я могу использовать событие? –
@ Ma_124 Предполагая, что 'e' является переданным в событии (в событииHandler), выполните' e.consume() '. – n247s
Но в интерфейсе 'org.w3c.dom.events.Event' нет такого метода, как' consumume() 'defined –