我在JavaFX中有一个WebView
。我想添加一个事件处理程序来决定是否要阻止超链接或重定向用户。我已经看过this question了。但是没有一种方法可以阻止重定向。
编辑:
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;
答案 0 :(得分:1)
您提供的答案是一个完美的解决方案。您可能希望consume
事件以防止链接被重定向到openend / browser。 (你在找什么?)
我假设您知道如何重定向并执行您提到的检查。如果没有,请详细说明您的目标,并发布一些您尝试过的代码。