gpt4 book ai didi

javascript - 在 jxbrowser 上消费链接事件

转载 作者:可可西里 更新时间:2023-11-01 13:45:14 26 4
gpt4 key购买 nike

我想在 teamdev 的 jxbrowser 上捕获并使用(防止重定向)链接事件。假设内容是

<a href="testlink">link</a>

当用户点击链接时,我想被告知用户点击了链接并获取了URL,但我不允许页面改变(链接应该被消耗)。

问题是, anchor 标记引号中的链接不以任何协议(protocol)开头(http://或 https://并且不结束与任何 .html 或等)。例如链接的形式是:

<a href="foo">link<a>

我们希望当用户点击该链接时,我们会收到点击的字符串是 foo 的通知。我知道,由于标准的原因,这个标签中的链接无效且格式不正确,但内容是通过使用一些特定的业务规则生成的,然后设置到 JxBrowser。我们无法更改链接的创建方式。

在下面的示例中,我们得到了 about:blank 作为 url,这不是我们想要的信息。如果我们改为

<a href="http://foo">link</a> 

然后它工作正常,但我们不能像我之前提到的那样修改链接(内容)。

browser.addLoadListener(new LoadListener () {
public void onStartLoadingFrame(StartLoadingEvent arg0) {
System.out.println("link click occured " + arg0.getValidatedURL());
arg0.getBrowser().stop();

}
);

最佳答案

LoadHandler 允许您处理与加载相关的任何事件。使用 LoadHandler,您可以确定加载类型并取消任何加载事件。这是一个例子:

browser.setLoadHandler(new DefaultLoadHandler() {
@Override
public boolean onLoad(LoadParams params) {
if (params.getType() == LoadType.LinkClicked) {
System.out.println("Link clicked: " + params.getURL());
return true;
}
return false;
}
});

关于javascript - 在 jxbrowser 上消费链接事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45284330/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com