2016-10-07 241 views
0

我想通过JavaScript在一个特定的网页上自动提交(登录)表单(数据由浏览器重新编排)。 我设法提交非常容易使用这种测试形式,我在我的电脑上进行:JavaScript - 自动提交表单

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

但是当我尝试在该网页上失败。我在Greasemonkey的页面上运行JavaScript,它工作正常,运行警报等,但提交不起作用。 网页是:http://plusklub.hteronet.ba/Login

我试着用的代码

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

还使用得自顶部评论此代码对这个问题这部分W8负载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> ] 
+2

当您运行代码时,您是否等待页面加载,因此表单存在?任何错误? “失败”具体是指什么? – charlietfl

+0

@charlietfl,1st,你的时间。生病编辑我的问题 –

+1

如果您在该事件处理程序中添加console.log()是否实际执行? –

回答

0

不幸的是我dont't有足够的速度添加评论,所以我要去试试我的镜头。

通常您需要等到页面加载才触发类似的事件,这应该是window.loadonload事件属性<body>元素应该工作。

我建议创建一个函数来通过onload事件被调用,您可以尝试获取用户的详细信息(登录名和PWD),如果正常工作,则可以在try...catch的异常处理添加.submit()调用检查浏览器是提高进一步调试的错误。 完成后,这可能会帮助您找出代码中发生的情况,使其无法按预期工作。

对不起,在答案中不是那么确切,以帮助你,但我希望揭示你的问题。

+0

Thx寻求帮助。只有通知你的家伙。不知何故,我设法提交表格。接下来的问题是提交的无限循环。因为每次提交相同的JS代码被触发。我想我站在墙前,这是不能做的。 :) –

+1

你可以通过使用类似“autologon”属性名称的布尔值来处理cookie或查询字符串,如果为true,那么你的js可以跳过它。我希望这有帮助。 – Fabricio

+0

我无法控制页面上的任何内容,我想登录。所以我认为我无法做任何事情与查询字符串!? –