使用javascript代码自动登录Gmail

时间:2014-08-10 17:02:09

标签: javascript autofill

我是javascript编程的新手,我正在尝试编写一些可以自动填写并提交Google登录表单的JavaScript代码。当前页面为https://accounts.google.com/ServiceLogin?sacu=1&continue=https%3A%2F%2Fwww.google.com.hk%2F%3Fgfe_rd%3Dcr%26ei%3DaaHnU563DIaL8Qeu-oG4Cw%26gws_rd%3Dssl&hl=en

时,以下代码可以正常工作
var inputs = document.getElementsByTagName('input'); 
for(var k=0;k<inputs.length;k++) { 
    var input = inputs[k] ;
    var type = input.getAttribute('type');
    if(type == 'email')
        input.value = "abc@gmail.com";
    if(type == 'password')
    input.value = "1234";
} 

var forms=document.getElementsByTagName('form'); 
forms[0].submit();

然后我尝试添加一些代码,这样如果浏览器当前在另一个网页上,该程序将直接发送给Google并自动登录。这是我写的:

function autoSubmit(){
    var inputs = document.getElementsByTagName('input'); 
    for(var k=0;k<inputs.length;k++) { 
        var input = inputs[k] ;
        var type = input.getAttribute('type');
        if(type == 'email')
            input.value = "abc@gmail.com";
        if(type == 'password')
        input.value = "123";
    } 

    var forms=document.getElementsByTagName('form'); 
    forms[0].submit();
}

document.location.href="https://accounts.google.com/ServiceLogin?sacu=1&continue=https%3A%2F%2Fwww.google.com.hk%2F%3Fgfe_rd%3Dcr%26ei%3DaaHnU563DIaL8Qeu-oG4Cw%26gws_rd%3Dssl&hl=en";
window.onload=autoSubmit();

然而,这不起作用。似乎autoSubmit()函数在Google网页完全加载之前执行。有谁能帮我解决这个问题?

1 个答案:

答案 0 :(得分:1)

有两个问题:

首先,你是正确的,早期调用autuSubmit函数:

window.onload=autoSubmit();

您正在做的是当时正在调用autoSubmit 并将其值分配给window.onload

你的意思是:

window.onload=autoSubmit;

请注意,我删除了parens ()。这指定了一个函数引用。

<强>然而...

这仍然不会做你想做的事。

当您更改页面 - location.href(应该是window.location.href,btw)时,您会加载新页面和当前信息 - 所有JavaScript,window.onload处理程序一切都被抛弃了。

简而言之,使用标准编程无法实现这一目标。

如果您正在尝试为自己制作一些内容,并且您没有尝试让它适合所有人,您可以使用userscript,它可以在Firefox,Chrome,Safari和Opera下运行。用户脚本允许您添加额外的代码以在网页上运行,但同样,它只会为您运行。