本脚本没有任何网络资源,不放心者请不要使用,毕竟自己的帐号重要.
找了一下,在geasyfork.org没有找到适合大部分论坛填写用户密码的脚本.
自己又懒得输入,就把greenbrowser上的改了一下发出来.
(没错,我以前就是用Greenbrowser的,直到最近再也没更新了…)
适合大部分论坛吧,网站没试过不清楚.
感谢作者lforl.
代码的20行和21行更改为你自己的用户名和密码.
要使用时点击pw这个按钮就可以了.
// ==UserScript==
// @name 填写密码
// @namespace pw
// @version 0.1
// @description 自动填写用户名密码,根据GreenBrowser上"智能通用填充:用户名密码"(作者lforl)更改而来
// @author hapocn
// @match http*://*
// @match *
// @include *
// @grant GM_registerMenuCommand
// ==/UserScript==
GM_registerMenuCommand('pw', password)
function password()
{
var myName="Username";//请相应改双引号内的Username为自己的通用【用户名】
var myPass="Password";//请相应改双引号内的Password为自己的通用【密码】
//*******=======除了以上两行内容相应修改,下面代码不要改动=======******
var ming=0;
var mima=0;
if(ming*mima<4){findTheNode(document.body,myName,myPass);}//如果名字和密码未填过
//-----------------考虑框架,遍历-----------------
var aFR = top.frames;
if(aFR.length>0)
{
for(var i=0;i<aFR.length;i++)
{
if(ming*mima<4){findTheNode(aFR[i].document.body,myName,myPass);}//如果名字和密码未填过
}
}
//======函数======
function findTheNode(elm,u_name,p_word)
{
if(ming*mima==4){return;}//如果名字和密码都填过了,就跳出
var elm;
for(var i=0;i<elm.childNodes.length;i++)
{
if(elm.childNodes[i].nodeType==3)
{
if(ming==0 && elm.childNodes[i].nodeValue.toString().replace(/门户/ig,"").match(/.*(名)|(帐)|(户)|(号)|(号:)|(id)|(user)|(username)|(username*)|(account).*/i))
{
ming= 1;//找到用户名字样
// alert(elm.childNodes[i].nodeValue);
}
else if(mima==0 && elm.childNodes[i].nodeValue.toString().match(/.*(密)|(码)|(码:)|(pass).*/i))
{
mima= 1;//找到密码字样
}
}
else
{
var tmp="";
try{tmp=elm.childNodes[i].nodeName.replace(/input/i,"input").replace(/password/i,"password");}
catch(e){}
if(tmp=="input" && elm.childNodes[i].style.display!="none")
{
if(ming*mima<4 && ming>0 && elm.childNodes[i].type=="text")//找到离用户名最近的一个input输入框:找到过名字字样ming=1,mima=1、0
{
elm.childNodes[i].value=u_name;
elm.childNodes[i].style.backgroundColor="#ffffcc";//填充后背景变色,提示已经填写之意
ming=2;//用户名填过以后记录一下
}
else if(elm.childNodes[i].type=="text" && (elm.childNodes[i].value+elm.childNodes[i].id+elm.childNodes[i].name).toString().replace(/门户/ig,"").match(/.*(名)|(帐)|(户)|(号)|号:)|(id)|(user)|(username)|(username*)|(account).*/i))
{//考虑输入框前无提示,而提示在用户名输入框内或者id或者name含有user字样的情况
elm.childNodes[i].value=u_name;
elm.childNodes[i].style.backgroundColor="#ffffcc";//填充后背景变色,提示已经填写之意
ming=2;//用户名填过以后记录一下
}
else if(ming*mima==2 && (elm.childNodes[i].type=="password" || elm.childNodes[i].type=="text"))
//找到离密码字样的最近的input:名字填过了ming等于2,并且找到过密码字样mima等于1
{
elm.childNodes[i].value=p_word;
elm.childNodes[i].style.backgroundColor="#ffffcc";
mima=2;//密码填过以后记录一下
}
else if(ming==2 && elm.childNodes[i].type=="password")
//找到离密码字样的最近的input:名字填过了ming等于2,没找到过密码字样mima等于0
{
elm.childNodes[i].value=p_word;
elm.childNodes[i].style.backgroundColor="#ffffcc";
mima=2;
}
}
}
findTheNode(elm.childNodes[i],myName,myPass);
}
}
}