W przeszłości korzystałem z JEditorPane, a teraz staram się jak najlepiej z JavaFX WebEngine. Jak mogę zarejestrować detektory zdarzeń zawierających hiperłącza na wyświetlanej stronie (np. Wybór linku lub kliknięcie linku)?HyperlinkListener w JavaFX WebEngine
W JEditorPane była metoda addHyperlinkListener ...
EDIT:
I po porady w pierwszej odpowiedzi. To jest mój kod:
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("KLIKNIETO!!!");
}
};
Document doc = webEngine.getDocument();
Element el = doc.getElementById("a");
NodeList lista = doc.getElementsByTagName("a");
System.out.println("Liczba elementow: "+ lista.getLength());
for (int i=0; i<lista.getLength(); i++)
((EventTarget)lista.item(i)).addEventListener("click", listener, false);
}
}
});
Teraz otrzymuję powiadomienia po kliknięciu linków. Muszę jednak uzyskać odnośnik do klikniętego linku (aby uzyskać jego zawartość). Jak mogę to osiągnąć?
Jakie treści trzeba? Dom węzłów, treść tekstowa, href, treść pobrana z połączonej lokalizacji href? – jewelsea
Potrzebuję połączonych treści href (np. some link) – Marco