如何在浏览器中触发保存的密码自动填充?

Ale*_*tec 10 javascript browser autofill

我有一个用纯JavaScript编写的Web应用程序(除了加载所有JS文件的文档之外,没有预先生成的HTML).

此应用程序包含一个登录表单,该表单是在触发document.ready事件事件时动态创建的.我欺骗浏览器显示"记住密码?" 在使用ajax登录之前将登录表单发布到隐藏的iframe中的对话框(在Firefox中,密码出现在保存的密码列表中,因此这部分显然有效)但保存的密码永远不会在稍后再次加载登录屏幕后填写时间.在Firefox和Safari中也会发生同样的事情.

有什么我可以做的或我可以调用的一些功能来触发自动填充?

更新:自动填充在初始页面加载时在Safari中工作,但不是在用户注销并且重新创建登录表单而没有页面重新加载时.在Firefox中它永远不会起作用.

Ste*_*aug 4

除了将表单元素包装在form元素中之外,还要确保所有输入(甚至可能是表单)都具有唯一nameid不会更改的属性。该名称可能应该是描述性的,例如password密码等,不太确定浏览器在多大程度上使用此信息,但如果您使用标准名称,“自动建议”/“魔杖”功能可能会更好。

当然,您应该确保没有将任何自动建议/自动填充属性设置为 false(如果您使用任何自动建议/自动填充属性,js 框架可能会出于某种原因这样做)。

第三种可能性是,某些浏览器可能会在脚本加载并将表单写入页面之前自动填充,尝试制作表单的静态 html 版本,看看是否有效

最简单的解决方案(如果静态表单有效)是在注销时强制重新加载页面(无论如何,您可能确实希望在注销后丢弃正在运行的 javascript 的“状态”,因此刷新确实是一件好事)