阻止Javafx WebView / Web引擎中的超链接

时间:2016-12-27 22:02:55

标签: java javafx-2

我在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;

1 个答案:

答案 0 :(得分:1)

您提供的答案是一个完美的解决方案。您可能希望consume事件以防止链接被重定向到openend / browser。 (你在找什么?)

我假设您知道如何重定向并执行您提到的检查。如果没有,请详细说明您的目标,并发布一些您尝试过的代码。