我在JavaFX中有一个WebView 。 我想添加一个事件处理程序来决定是否要阻止超链接或重定向用户。 我已经看过这个问题 。 但是没有一种方法可以阻止重定向。
编辑:
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;I have a WebView in JavaFX. And I want add an event handler to decide if I want to block an hyperlink or redirect the user. I have already seen this question. But there isn't a way described to block the redirection.
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); } } });Imports (these were wrong):
import org.w3c.dom.events.Event; import org.w3c.dom.events.EventListener; import org.w3c.dom.events.EventTarget;最满意答案
您提供的答案是一个完美的解决方案。 您可能希望consume该事件来防止链接被重定向到openend / browser。 (你在找什么?)
我假设您知道如何重定向并执行您提到的检查。 如果没有,请详细说明您的目标,并发布一些您尝试过的代码。
The answer you provided is a perfect solution. You propably want to consume the event to prevent the link to be openend/browser to be redirected. (Which is what you are looking for?)
I assume you know how to redirect and do the checks you mentioned. If not, pleaese elaborate a bit more what you are aiming for, and post some code of what you have tried.
更多推荐
发布评论