以前はJEditorPaneを使用していましたが、今ではJavaFX WebEngineでベストを尽くしています。表示されたページにハイパーリンクを含むイベントのリスナーを登録するにはどうしたらいいですか(リンクの選択やリンクのクリックなど)? JEditorPaneのでJavaFX WebEngineのHyperlinkListener
はaddHyperlinkListener方法があった...
EDIT:
私は最初の回答でアドバイスを行いました。これは私のコードです:
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);
}
}
});
私は今、リンクをクリックしてイベントを受け取ります。しかし、私はクリックされたリンクへの参照を取得する必要があります(コンテンツを取得する)。それをどうすれば実現できますか?
あなたは、コンテンツのどのような種類が必要ですか? DOMノード、テキストコンテンツ、href、リンクされたhrefの場所から取得されたコンテンツ? – jewelsea
リンクされたhrefのコンテンツが必要です(some link) – Marco