关于JDIC超链接打开窗口问题的解决方案

JDIC这个web brower用了一下,功能还算是可以,不过,有BUG,网上又找版本只有0.9.5这个版本,就将就用了一下,小程序了,

运行以后发觉,某些会弹窗口的超链接,就会打开窗口,妈的,我就花了N多力气去网上找资料,网上的资料从来没有一个人说实话,也没有一个好像是高手,气得我直跺脚,又是只能自己解决,每次都这样,也不知道是不是大家就这样,还是水平好的人,不展示一下。

实在是气不过,于是写个出来以后有和一样的朋友,不会这么辛苦。


先找到资料可以阻止窗口打开的方法

重新写webbrower这个类中的两个方法

protected boolean willOpenURL(URL arg0) {
                return super.willOpenURL(arg0);
            }

            protected boolean willOpenWindow(){
             
                return false;
            }

第一个方法是跳转,第二个就是将要打开窗口前的验证,

于是我想如何才能得到这个打开前的地址,可是这里根本无法得到,于是我用方法getURL(),当在willOpenWindow中放入getURL时,窗口又重新弹出,于是我明白了,这个方法一定是willOpenWindow之后调用的,无计可施了,只用其它的招数,

这个WEBBROWER里有一个监听,我想找找资料有没有对超链接进行监听的,可是找了N久也没有

只用对整个WEBBROWER这个进行监听,监听的有文档完成、下载开始、下载结束、还有状态栏变化、

根本就没有超链接的处理

最终是根本无法处理,最后想了一个招,把状态的地址链接拿过来

然后进行分析,是否是地址,如果是地址,就在willOpenWindow中把这个地址set到这个浏览器里

public void statusTextChange(WebBrowserEvent arg0) {
                // TODO Auto-generated method stub
                if(!arg0.getData().equals("完成")){
                    try {
                        browerUrl = new URL(arg0.getData());
                    } catch (MalformedURLException e) {
                        browerUrl = null;
                    }
                }
            }


protected boolean willOpenWindow(){
                brower.setURL(browerUrl);
                return false;
            }

复制出代码,希望大家也能顺利解决。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值