首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaFX WebEngine中的HyperlinkListener

JavaFX WebEngine中的HyperlinkListener
EN

Stack Overflow用户
提问于 2013-07-10 02:50:34
回答 3查看 12.8K关注 0票数 8

在过去,我使用JEditorPane,现在我正在尽我最大努力使用JavaFX WebEngine。如何为显示页面上包含超链接的事件注册侦听器(如链接选择或单击链接)?

在JEditorPane中有addHyperlinkListener方法...

编辑:

我听从了第一个答案中的建议。这是我的代码:

代码语言:javascript
复制
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);
        }
    }
});

单击链接后,我现在会收到事件。然而,我需要获得对点击的链接的引用(以获得其内容)。我怎样才能做到这一点呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-10 03:07:21

一旦加载了相关文档,您就可以通过在Java语言中使用w3c dom类添加一个单击事件处理程序来捕获链接单击事件。

请参阅Detecting HTML textarea onkeyup event in JavaFX WebView中的谢尔盖示例。

您还可以使用JavaScript (例如,使用jQuery)捕获事件,它可能比w3c dom api更容易使用。

如果您正在使用JavaScript捕获事件,并且希望从JavaScript向Java反馈事件或后续处理的通知,则可以使用JavaScript <=> Java bridge api

我记录了一个请求,希望将此功能的示例添加到官方WebView教程中。

票数 3
EN

Stack Overflow用户

发布于 2013-10-29 00:44:32

你有的地方

代码语言:javascript
复制
System.out.println("KLIKNIETO!!!");

替换为

代码语言:javascript
复制
String href = ((Element)ev.getTarget()).getAttribute("href");

要获取单击的链接的URL,请执行以下操作。

这个页面给出了一个很好的例子来说明你正在尝试做什么:

http://blogs.kiyut.com/tonny/2013/07/30/javafx-webview-addhyperlinklistener

票数 6
EN

Stack Overflow用户

发布于 2016-06-13 15:56:53

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17555937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档