为什么 Firefox 即使输入不同的名称也会自动完成?

2023-12-19

或者 Firefox 如何确定密码/用户名的去向?

如果我更改输入元素的名称、id、标题、类,Firefox 会继续用密码或电子邮件填充它。


如果我正确理解 Firefox 的源代码,浏览器首先会在表单中查找密码字段。如果表单包含超过 3 个密码字段,自动填充功能将忽略该表单。

找到 1 到 3 个密码字段后,浏览器将查找登录字段。浏览器从第一个密码字段开始向后搜索,并假设登录字段是该类型的第一个找到的字段text or email or url or tel or number.

下一步取决于我们是否在页面加载时或提交表单时检查表单。 如果我们在页面加载期间检查并且有一个登录字段和一个密码字段,那么情况很简单,浏览器可以填写表单。

其他情况(表单提交或超过 1 个密码字段)会执行一些“智能”逻辑来确定哪个密码字段包含新密码,哪个密码字段包含旧密码,可能是为了更新存储的密码)。如果您对详细信息感兴趣,请下载源代码并打开toolkit/components/passwordmgr/nsLoginManager.js文件。要检查的功能是_fillForm, _getFormFields and _getPasswordFields.

总而言之,Firefox 不需要任何 ID、名称或类属性来猜测哪个字段是登录名或密码。它仅依赖于表单字段的类型和顺序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Firefox 即使输入不同的名称也会自动完成? 的相关文章