最近在做模拟自动登录的案例,需要在页面中模拟鼠标单击的效果,因为通过document.forms[0].submit的方式可以提交表单,但是对于一些表单是通过一个链接或是Ajax方法以单击效果提交的表单,就束手无策。
上网查了查,有以下代码可实现,
evt = document.createEvent('MouseEvents');
evt.initEvent('click', false, false);
document.getElementsByName('loginForm:submitBtn')[0].dispatchEvent(evt);
经测试,上述代码在Firefox中起作用,但是在IE中提示错误,方法不支持,于是继续查找evt.initEvent('click', false, false);
document.getElementsByName('loginForm:submitBtn')[0].dispatchEvent(evt);
evt = document.createEventObject();
evt.button = 1;
document.getElementsByName('loginForm:submitBtn')[0].fireEvent('onclick', evt);
document.getElementsByName('loginForm:submitBtn')[0].fireEvent('onclick', evt);//我所访问的页面是JSF的,需要单击两次
上述代码可以在IE中执行evt.button = 1;
document.getElementsByName('loginForm:submitBtn')[0].fireEvent('onclick', evt);
document.getElementsByName('loginForm:submitBtn')[0].fireEvent('onclick', evt);//我所访问的页面是JSF的,需要单击两次
那么如何判断是IE还是Firefox呢?
if(document.all){IE}else{Firefox}