In passato ho utilizzato JEditorPane e ora sto facendo del mio meglio con JavaFX WebEngine. Come posso registrare i listener per gli eventi contenenti collegamenti ipertestuali nella pagina visualizzata (come la selezione del collegamento o fare clic su un collegamento)?HyperlinkListener in JavaFX WebEngine
In JEditorPane c'era metodo addHyperlinkListener ...
EDIT:
ho seguito il consiglio nella prima risposta. Questo è il mio codice:
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);
}
}
});
Ora ricevo gli eventi dopo aver fatto clic sui collegamenti. Tuttavia ho bisogno di ottenere riferimenti al link cliccato (per ottenere il suo contenuto). Come posso ottenerlo?
Che tipo di contenuti avete bisogno? I dom node, il contenuto del testo, l'href, il contenuto recuperato dalla posizione href collegata? – jewelsea
Ho bisogno di contenuti href collegati (ad esempio some link) – Marco