阻止Javafx WebView / Web引擎中的超链接(Block hyperlinks in a Javafx WebView / Web Engine)

编程入门 行业动态 更新时间:2024-10-25 10:32:35
阻止Javafx WebView / Web引擎中的超链接(Block hyperlinks in a Javafx WebView / Web Engine)

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

更多推荐

本文发布于:2023-07-30 00:05:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1320825.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:超链接   引擎   Web   Javafx   WebView

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!