【发布时间】:2016-10-07 21:50:24
【问题描述】:
我正在尝试通过 JavaScript 在一个特定网页上自动提交(登录)表单(数据由浏览器记住)。 我设法提交了我在我的电脑上制作的测试表格,使用这个很容易:
document.forms["formID"].submit();
但是当我在页面上尝试时它失败了。我通过 Greasemonkey 在页面上运行 JavaScript,它工作正常,运行警报等,但提交不起作用。 网页为:http://plusklub.hteronet.ba/Login
我尝试使用这部分代码加载 w8
document.addEventListener("DOMContentLoaded", function(event) {
document.forms["aspnetForm"].submit();
});
还使用此问题的顶级评论中的此代码Auto-Submit Form using 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> ]
【问题讨论】:
-
您是否等待页面加载,以便在运行代码时存在表单?有什么错误吗? “失败”具体是什么意思?
-
@charlietfl,第一,你的时间。生病编辑我的问题
-
如果你在那个事件处理程序中添加一个console.log(),它真的会被执行吗?
-
不。但是当我在事件处理程序之前添加 console.log 时会这样做。
-
window.onload = function () { console.log("test3"); document.forms["aspnetForm"].submit(); } } 我试过了,没有变化。