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;
}
复制出代码,希望大家也能顺利解决。