写的第一个Greasemonkey脚本
最近在学JavaScript,顺手写了一个脚本,解决了一个问题。
大家都知道我们学校的教务处的网站是做的不咋样。起码肯定不复合WEB标准,用firefox是无法登录的。
其实呢,网页的设计者还是考虑了浏览器兼容性的,不过犯了一个小错误。大家看这个页面的源码,它里面的check()函数中犯了一个小错误。
function check() { if ( document.main.xh.value.length == 0 ) { window.alert( "请输入用户!" ) document.main.xh.focus() } else if (document.main .user_pwd .value.length ==0 ) { window.alert("请输入密码") document.main .user_pwd .focus() } else { self.main.submit(); } }
self.main.submit()是不正确的,应该self指的是window而非document。我就不明白了上面两处都用了document.main.XXXX,为什么这里就要用错误的self.main.submit()呢?
所以我就写了个小脚本(下载)修正了这个错误。
str=’if ( document.main.xh.value.length == 0 )’;
str+=’{window.alert( “Please Input UserName!” );document.main.xh.focus();}’;
str+=’else if (document.main .user_pwd .value.length ==0 )’
str+=’{window.alert(“Please Input Password!”);document.main .user_pwd .focus();}’;
str+=’else{document.main.submit();}’;
aHref=document.getElementsByTagName(“a”);
for (i=aHref.length-1;i>=0;i++)
{
if (aHref[i].href=”javascript:check()” mce_href=”javascript:check()”)
break;
}if (i>=0)
{ aHref[i].href=”javascript:” mce_href=”javascript:”+str;
}
str+=’{window.alert( “Please Input UserName!” );document.main.xh.focus();}’;
str+=’else if (document.main .user_pwd .value.length ==0 )’
str+=’{window.alert(“Please Input Password!”);document.main .user_pwd .focus();}’;
str+=’else{document.main.submit();}’;
aHref=document.getElementsByTagName(“a”);
for (i=aHref.length-1;i>=0;i++)
{
if (aHref[i].href=”javascript:check()” mce_href=”javascript:check()”)
break;
}if (i>=0)
{ aHref[i].href=”javascript:” mce_href=”javascript:”+str;
}
我的脚本其实不好,应该还有更好的方法,不过还没学会。