表单自动填充autocomplete的兼容性方案

以下情况下会自动填充用户和密码信息:

    1、在用户和密码包含在form的情况下,同时包含一个 type="text"和 type="password"元素且不包含readonly和disabled属性,两个元素可以没有name和id属性

    2、在没有form的情况下,同时包含一个 type="text"和 type="password"元素且不包含readonly和disabled属性,且两个元素至少都有name或id属性(但name和id可以是任意值但不能是空或空格)。

规避以上情况可以实现禁止自动填充西账号密码

登录或者注册浏览器会提示是否记住密码

当浏览器记住密码后,之后的每次登录/注册都会自动填充输入框

默认的解决方案是在form与input上添加autocomplete=“off”,但是在很多浏览器上不起作用

网上也提供了好多方案,比如在最前面放一个隐藏的input标签或者是把autocomplete设置为new-password,浏览器调试工具测试后具不起作用啊,有木有

(在chrome上测试了一下隐藏的type=text的input放在正常input的后面,而password放到前面)

比较可信的有两种方案

第一:

默认设置input为readonly    onfouces的时候去掉这个属性,onblur的时候加上这个属性

第二:

现在页面显示一个假的输入框,当这个输入框foucus的时候,把真的输入框替换上去,当失去焦点的时候再替换回来,这样即使浏览器要记住密码也不会在输入框上留下痕迹

原文地址:https://www.cnblogs.com/fqlGlog/p/8303643.html