使用浏览器地址栏中编写的 JS 代码自动提交表单的问题

Posted

技术标签:

【中文标题】使用浏览器地址栏中编写的 JS 代码自动提交表单的问题【英文标题】:Issue with Form Auto-Submit with JS code written in browser's address bar 【发布时间】:2016-02-16 07:35:05 【问题描述】:

我是 javascript 和 Web 应用程序编程的新手。我正在尝试创建一个“自动登录”实用程序,该实用程序将填写用户名/密码字段并将信息自动提交到服务器,并在无需用户干预的情况下登录应用程序。这与另一个名为“RoboForm”的实用程序相同。由于一些隐私问题,我无法在我当前的组织中为此目的使用此 RoboForm 或任何第三方实用程序。所以,我决定自己创建它。

这就是我想要做的;进入应用程序的登录页面后,我在浏览器地址栏中的 javascript 代码下方编写:

javascript:document.getElementById('Username').value='xyz';document.getElementById('Password').value='xyz_123';document.getElementById('Destination').value='TestDB';document.forms['Form1'].submit();

使用此代码一切正常,除了表单没有“自动提交”。我必须手动点击“登录”按钮才能继续。

我在 google 上做了一些研究,发现按钮 id 不应该是“提交”。我验证了这一点,并且我尝试登录的应用程序有一些不同的 id,所以这不是问题。我不确定为什么表单没有“自动提交”。

请注意,我尝试登录的应用程序是第三方应用程序,我无权访问源代码。

谁能帮我解决这个问题?如果有任何其他替代方案可以达到相同的效果,请建议我。

谢谢! 斯瓦德

【问题讨论】:

【参考方案1】:

如果您的表单名称是Form1,那么自动提交的代码应该是

document.forms[0].submit();

document.Form1.submit();

【讨论】:

【参考方案2】:

我找到了解决办法:

document.getElementById('cmdLogin1').click();代替document.forms['Form1'].submit();

【讨论】:

以上是关于使用浏览器地址栏中编写的 JS 代码自动提交表单的问题的主要内容,如果未能解决你的问题,请参考以下文章

java web 如何防止 用户绕过js验证,直接地址栏提交表单或自己编写html页面,提交数据到服务器?

如何禁止按回车键提交表单

如何禁止按回车键提交表单

用户提交表单后,怎样修改浏览器的url地址?

auto.js如何解析html

js之添加浏览器历史记录