自动提交表单

JavaScript - Auto submit form

本文关键字:表单 提交      更新时间:2023-09-26

我试图通过JavaScript在一个特定的网页上自动提交(登录)表单(数据由浏览器记住)。我设法提交测试表格,我在我的PC上很容易使用这个:

document.forms["formID"].submit();

但是当我在页面上尝试时它失败了。我在Greasemonkey的页面上运行JavaScript,它工作得很好,运行警报等,但提交不工作。网页为:http://plusklub.hteronet.ba/Login

我试图加载这部分代码

document.addEventListener("DOMContentLoaded", function(event) {             
    document.forms["aspnetForm"].submit();
});

也使用这个代码从顶部评论这个问题使用JavaScript自动提交表单失败意味着什么也没发生。

我尝试了几件事:

console.log("test1");
    document.addEventListener("DOMContentLoaded", function(event) { 
        console.log("test2");           
    });
    console.log("test3");
    window.onload = function () { 
        console.log("test4");       
        }
    }
    console.log("test5");
    var fo=document.getElementById("aspnetForm");
    console.log(fo);
    var bu=document.getElementsByClassName("button");
    console.log(bu);
    bu.click();
    setTimeout(function(){ console.log("test6"); }, 3000);

输出关注:

test1helloworld.user.js:13:3
test3helloworld.user.js:17:3
test5helloworld.user.js:22:3
<form name="aspnetForm" method="post" action="/Login?ReturnUrl=http://plusklub.hteronet.ba/" id="aspnetForm">helloworld.user.js:24:3
HTMLCollection [ <input#ctl04_ctl02_btnSubmit.button> ]

遗憾的是,我没有足够的速率来添加评论,所以我要试一试。

通常你需要等待页面加载之前触发这样的事件,<body>元素的window.loadonload事件属性应该工作。

我建议创建一个通过onload事件调用的函数,您可以尝试检索用户详细信息(登录和pwd),如果工作,那么可以在try...catch异常处理下添加.submit()调用,以检查浏览器是否正在引发进一步调试的错误。一旦这样做了,这可能会帮助你弄清楚是什么原因导致你的代码没有像预期的那样工作。

对不起,我的回答不是那么精确,但我希望能对你的问题有所帮助。