加载后自动登录网站 - 用户脚本(JS)

时间:2015-10-31 20:09:31

标签: javascript html userscripts

我正在编写用于学习目的的用户脚本,会自动将我登录到我的学校网站。我尝试使用JavaScript,我希望它正在进行中。有人可以帮我编辑它按预期工作(而不是根本没有)。我有Java和Python的编程经验,但我对Web编程很新。谢谢!

我正在使用带有以下代码的TamperMonkey

// ==UserScript==
// @name       MyMCLogin
// @namespace  http://use.i.E.your.homepage/
// @version    0.1
// @description  Automatic login to My MC
// @match https://mymcprod.montgomerycollege.edu/cp/home/displaylogin
// @copyright  SJL 2015
// ==/UserScript==

document.getElementsByName('user')[0].value = "username";
document.getElementsByName('pass')[0].value = "password";
imageSubmit();

基本上我想找到用户名和密码变量的变量,用我的用户名和密码替换它们,然后提交

感谢您的帮助:)

编辑:我修复了语法错误。剩下的唯一问题是它没有提交用户名和密码

Edit2:我尝试了以下但没有成功:

我在检查提交按钮后注意到在按下时发生了一个函数login()。我能以某种方式使用这个功能吗?

document.cplogin.submit();
document.userid.submit();
document.userid.login();

好的,所以我让它工作!我从html源代码中复制了login()函数的代码。

setQueryAsCookie();
document.cplogin.user.value=document.userid.user.value;
if ( document.cplogin.uuid )
{
    document.cplogin.uuid.value=(new Date()).getTime() - clientServerDelta;
}

这是一个非常有说服力的解决方案:P。我将继续尝试各种建议,以便学习。

非常感谢你们:)

最后?代码:

// ==UserScript==
// @name       MyMCLogin
// @namespace  http://use.i.E.your.homepage/
// @version    0.1
// @description  Automatic login to My MC
// @match https://mymcprod.montgomerycollege.edu/cp/home/displaylogin
// @copyright  SJL 2015
// ==/UserScript==

document.getElementsByName('user')[0].value = "username";
document.getElementsByName('pass')[0].value = "password";

setQueryAsCookie();
document.cplogin.user.value=document.userid.user.value;
if ( document.cplogin.uuid )
{
    document.cplogin.uuid.value=(new Date()).getTime() - clientServerDelta;
}

1 个答案:

答案 0 :(得分:3)

您需要找到表单标记,以便可以在其上调用submit()。但是您不希望自动提交所有表单,因此请检查表单的属性,如ID和操作,以查看它们是否包含“login”一词。这将特定于您要登录的页面,查看源代码并查找有关该表单的独特内容。

然后你可以找到用户并完全按照你的方式进行传递,但你需要查看源代码以确保名称属性与你在JS中搜索的内容相匹配。

我怀疑您最终可能会尝试在每个页面上提交此内容并尝试自动重新登录。我不知道tampermonkey是否一直将你的代码保存在内存中,但如果确实如此,请考虑设置一个跟踪你是否已经登录的变量。

//pseudo code
var formList = document.getElementsByTag('form');
var loginForm;
for (form in formList) {
     if (form.getAttribute('action').indexOf('login')) {
        loginForm = form;
     }
}
if (loginForm) {
     //set username and password;
     form.submit();
}