具体问题=如何在同一个html页面内启动第二个表单操作?我还需要创建一个5秒的延迟,以便第一个动作可以完成
我正在寻找的结果=我想双击保存的.html文件,然后自动登录我的电子邮件
我是如何获得此网址的? = msn.com>点击outlook>点击登录
问题= 我在保存的html页面中创建了一个javascript函数,我可以通过页面登录。问题是我无法将密码正确放入密码字段并提交按钮。对于我的live.com帐户,这是一个2页的身份验证。第一页是您放置用户名的位置,然后单击“下一步”,然后在第2页输入密码并单击“登录”。
我尝试了什么=
我有多远=
<html>
<body style="display: none">
<form action="https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=13&ct=1485483982&rver=6.7.6640.0&wp=MBI_SSL&wreply=https%3a%2f%2foutlook.live.com%2fowa%2f%3fnlp%3d1&id=292841&CBCXT=out&fl=wld&cobrandid=90015" method="POST" name="logonForm" ENCTYPE="application/x-www-form-urlencoded"
id="loginForm">
<input type="hidden" name="destination" value="https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=13&ct=1485483982&rver=6.7.6640.0&wp=MBI_SSL&wreply=https%3a%2f%2foutlook.live.com%2fowa%2f%3fnlp%3d1&id=292841&CBCXT=out&fl=wld&cobrandid=90015">
<input type="hidden" name="username" value="this is my username@live.com" >
<input type="hidden" name="passwd" value="this is my password">
<input type="hidden" name="flags" value="4">
<input type="hidden" name="forcedownlevel" value="0">
<input type="radio" name="trusted" value="4" class="rdo" checked>
<input type="hidden" name="isUtf8" value="1">
</form>
<form action="https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=13&ct=1485483982&rver=6.7.6640.0&wp=MBI_SSL&wreply=https%3a%2f%2foutlook.live.com%2fowa%2f%3fnlp%3d1&id=292841&CBCXT=out&fl=wld&cobrandid=90015" method="POST" name="passForm" ENCTYPE="application/x-www-form-urlencoded"
id="passwordForm">
<input type="hidden" name="destination" value="https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=13&ct=1485483982&rver=6.7.6640.0&wp=MBI_SSL&wreply=https%3a%2f%2foutlook.live.com%2fowa%2f%3fnlp%3d1&id=292841&CBCXT=out&fl=wld&cobrandid=90015">
<input type="hidden" name="username" value="This is my username@live.com" >
<input type="hidden" name="passwd" value="this is my password">
<input type="hidden" name="flags" value="4">
<input type="hidden" name="forcedownlevel" value="0">
<input type="radio" name="trusted" value="4" class="rdo" checked>
<input type="hidden" name="isUtf8" value="1">
<input type="hidden" name="data-bind" value="this is my password">
</form>
<script type="text/javascript">
document.forms["logonForm"].submit();
document.forms["passForm"].submit();
</script>
</body>
</html>
我是java的新生,我对编码,开发和学习抱有很大的兴趣。我似乎无法理解这一点。我确定我的html / java看起来像乱七八糟的混乱,但那是因为我一直在尝试所有类型的东西,看看是否有什么工作,当我能够通过登录页面时我很兴奋。
我为长篇帖子道歉,我只想获得尽可能多的信息。我想尽可能具体。这是我在堆栈溢出中的第一篇文章,对于成为这个社区的一员,我感到非常兴奋。
提前感谢您的帮助! TechStudent01
答案 0 :(得分:0)
你不能这样做。
一旦发送<form>
(GET
或POST
),这是一个同步操作,您的脚本基本上会停止执行,除非目标网页无法加载(和浏览器没有显示错误页面,这可能发生在严重的网络问题上),.submit()
是一个无法返回的功能:如果它正确执行,你就不再在同一页面上了
让您从网页运行脚本到新加载的其他脚本将是大量安全问题的大门,因此,这是不允许的。因此,您无法将密码自动输入到登录表单中。
此外,Microsoft帐户表单受CSRF verification的约束,阻止您从Microsoft发送的页面(即您的HTML文件)登录。
此外,您要实现的目标正是提供某种浏览器集成的密码管理器的目的。